Добавление видео на страницу при нажатии кнопки

#javascript

#javascript

Вопрос:

Я начинающий пользователь JS, и я пытаюсь заставить видео воспроизводиться в полноэкранном режиме и заменить невидимый div дальше по странице. Я начал с руководства от Криса Фердинанди.

В его руководстве видео заменяет изображение, на которое нажимается. Я хотел бы, чтобы div позже был заменен на странице при нажатии.

Любое руководство было бы здорово!

HTML

 <a data-video="480459339" class="stylsheetref" href="#" target="">Watch the Tour</a>
<div id="video-replace"></div>
  

Javascript (модифицированный из этого руководства)

 <script>
   if (!Element.prototype.requestFullscreen) {
    Element.prototype.requestFullscreen = Element.prototype.mozRequestFullscreen || Element.prototype.webkitRequestFullscreen || Element.prototype.msRequestFullscreen;
}

// Listen for clicks
document.addEventListener('click', function (event) {

    //Set invisible Div (new code added by me)
    var videonew = '#video-replace');
 
    // Check if clicked element is a video link
    var videoId = event.target.getAttribute('data-video');
    if (!videoId) return;

    // Create iframe
    var iframe = document.createElement('div');
    iframe.innerHTML = '<p>x</p><iframe width="560" height="960" src="https://player.vimeo.com/video/'   videoId   '?rel=0amp;autoplay=1" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>';
    var video = iframe.childNodes[1];

    // Replace the image with the video
    event.target.parentNode.replaceChild(video, videonew);

    // Enter fullscreen mode
    video.requestFullscreen();
    
}, false);

</script>

  

Ответ №1:

В вашем коде есть проблемы.

var videonew = '#video-replace'); поскольку ) вы используете это в методе `replaceChild’, я предполагаю, что вы хотите, чтобы переменная ссылалась на элемент.

Поэтому измените его на

var videonew = document.querySelector('#video-replace');

Профессиональный совет: использование консоли разработчика во время разработки может помочь вам выявить такие ошибки в вашем коде.