2016-04-05 6 views
0

У меня есть 3 слайдера, каждый из которых имеет 1 видео Youtube.Javascript не работает после обновления страницы - ПОЧЕМУ?

Каждое видео имеет пользовательские кнопки START/STOP javascript.

Мой скрипт отлично работает, когда страница загружается в первый раз. ПОСЛЕ обновления, кнопки javascript больше не работают. Фактически, они не будут работать, пока я не очистю кеш, и часто мне даже нужно перезапустить браузер.

Благодарим за отзыв!

// START STOP YOUTUBE VIDEO 
 

 
    \t // Inject YouTube API script 
 
\t  var tag = document.createElement('script'); 
 
\t  tag.src = "//www.youtube.com/player_api"; 
 
\t  var firstScriptTag = document.getElementsByTagName('script')[0]; 
 
\t  firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 
 
    
 
    // Set global variable for the player 
 
     var playerA; 
 
     var playerB; 
 
     var playerC; 
 

 
    // this function gets called when API is ready to use 
 
\t  function onYouTubePlayerAPIReady() { 
 
\t  
 
\t  // create the global player from the specific iframe (#video) 
 
\t  
 
\t  // for Slider 1 
 
\t \t   playerA = new YT.Player('player1', { 
 
\t \t   events: { 
 
\t \t    // call this function when player is ready to use 
 
\t \t    'onReady': onPlayerReady 
 
\t \t   } 
 
\t \t   }); 
 

 
\t  // for Slider 2 
 
\t \t   playerB = new YT.Player('player2', { 
 
\t \t   events: { 
 
\t \t    // call this function when player is ready to use 
 
\t \t    'onReady': onPlayerReady 
 
\t \t   } 
 
\t \t   }); 
 

 
\t  // for Slider 3 
 
\t \t   playerC = new YT.Player('player3', { 
 
\t \t   events: { 
 
\t \t    // call this function when player is ready to use 
 
\t \t    'onReady': onPlayerReady 
 
\t \t   } 
 
\t \t   }); 
 
\t  
 
\t  }; 
 

 
\t // Bind Events 
 
\t  function onPlayerReady(event) { 
 
\t  
 
\t \t  // bind Slider 1 events 
 

 
\t \t  var playButton = document.getElementById("VideoPlayBtn1"); 
 
\t \t  playButton.addEventListener("click", function() { 
 
\t \t   playerA.playVideo(); 
 
\t \t  }); 
 
\t \t  
 
\t \t  var pauseButton = document.getElementById("VideoPauseBtn1"); 
 
\t \t  pauseButton.addEventListener("click", function() { 
 
\t \t   playerA.pauseVideo(); 
 
\t \t  }); 
 

 

 
\t \t  // bind Slider 2 events 
 
\t \t  
 
\t \t  var playButton = document.getElementById("VideoPlayBtn2"); 
 
\t \t  playButton.addEventListener("click", function() { 
 
\t \t   playerB.playVideo(); 
 
\t \t  }); 
 
\t \t  
 
\t \t  var pauseButton = document.getElementById("VideoPauseBtn2"); 
 
\t \t  pauseButton.addEventListener("click", function() { 
 
\t \t   playerB.pauseVideo(); 
 
\t \t  }); 
 

 
\t \t  // bind Slider 3 events 
 
\t \t  
 
\t \t  var playButton = document.getElementById("VideoPlayBtn3"); 
 
\t \t  playButton.addEventListener("click", function() { 
 
\t \t   playerB.playVideo(); 
 
\t \t  }); 
 
\t \t  
 
\t \t  var pauseButton = document.getElementById("VideoPauseBtn3"); 
 
\t \t  pauseButton.addEventListener("click", function() { 
 
\t \t   playerB.pauseVideo(); 
 
\t \t  }); 
 
\t \t  
 
\t \t };
<iframe id="player1" class="VideoA" src="https://www.youtube.com/embed/C0DPdy98e4c?enablejsapi=1&showinfo=0" frameborder="0" allowfullscreen="0"></iframe> 
 

 
<button id="VideoPlayBtn1" >Play</button></div> 
 
<button id="VideoPauseBtn1">Pause</button></div> 
 

 
<iframe id="player1" class="VideoA" src="https://www.youtube.com/embed/C0DPdy98e4c?enablejsapi=1&showinfo=0" frameborder="0" allowfullscreen="0"></iframe> 
 

 

 
<button id="VideoPlayBtn2" >Play2</button></div> 
 
<button id="VideoPauseBtn2">Pause2</button></div> 
 

 
<iframe id="player3" class="VideoA" src="https://www.youtube.com/embed/C0DPdy98e4c?enablejsapi=1&showinfo=0" frameborder="0" allowfullscreen="0"></iframe> 
 

 
<button id="VideoPlayBtn3" >Play3</button></div> 
 
<button id="VideoPauseBtn3">Pause3</button></div>

+0

Ваш фрагмент кода также не работает. –

+0

Хорошо, я решил проблему. Бит «// Inject YouTube API» нужно было поместить в отдельный скрипт и загрузить позже. – James

ответ

-1

Вы можете обновить страницу, реализовав следующий код в Java Script

Используйте location.reload(); метод.

Для получения дополнительной информации обратитесь к this

Смежные вопросы