Вставить блок iframe в личный кабинет пользователся

Есть сms для управления сайтом, нужно вставить в личном кабинете пользователя видео инструкцию, но прямого доступа к нему нет, пытался вставить JS'ом, код выполняется но ничего не выводит ни в консоль ни на экран

<script type="text/javascript">

let elem = document.getElementsByTagName("div");       
document.addEventListener('click', func, false);

function func () {
  
    for (let i = 0; i < elem.length; i++) {
     
        if (elem[i].classList.contains('loggedInStateButtons')) {
            
            document.addEventListener('click', funct, false);

            function funct () {
  
                for (let i = 0; i < elem.length; i++) {
     
                    if (elem[i].classList.contains('documents')) {
                    
                        document.addEventListener('click', funct, false);

                        function funct () {
  
                            for (let i = 0; i < elem.length; i++) {
     
                                if (elem[i].classList.contains('uploaded-documents')) {

                                    console.log ('chln')
                                    let paret = document.getElementsByClassName('upload__table')[0];
                   
                                    let d = document.createElement('div');
                                    d.innerHTML = '<iframe width="560" height="315" src="https://www.youtube.com/embed/70y94zG1-jU" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>'
                                    d.className='vid_verif';
                                    paret.appendChild(d);

                                };

                            };

                        };

                    };

                };

            };

        };

    };

};


</script>


Ответы (1 шт):

Автор решения: Zombotron

Вообще, нужно типа такое:

<script defer>
    let paret = document.getElementsByClassName('upload__table')[0];

    let d = document.createElement('div');
    d.innerHTML = '<iframe width="560" height="315" src="https://www.youtube.com/embed/70y94zG1-jU" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>'
    d.className='vid_verif';
    paret.appendChild(d);
</script>

defer запускает скрипт после загрузки всей страницы.

Или просто в конце его прописать.

Но если элемент формируется скриптом, то можно добавить проверку наличия элемента в ОДНОМ цикле while с задержкой в полсекунды. но это изврат - гуглим "js событие при появления элемента".

→ Ссылка