2015-10-23 135 views
0

我有以下代码来替换iframe的src以在每次加载页面时都有随机视频。但是页面只是继续加载并继续运行该功能。如何停止重复功能。如何停止重复加载

<div id="rightsugg"><iframe id="randomVideo" width="560" height="315" src="" onLoad="displayRandomVideo();" frameborder="0" allowfullscreen></iframe></div> 
        <script type="text/javascript"> 
         function getRandomVideo() { 
          var videos = [ 
           'https://www.youtube.com/embed/kiTO7c_qeZs', 
           'https://www.youtube.com/embed/z4Hfv00eqoI', 
           'https://www.youtube.com/embed/7cdZYQB5ONE', 
           'https://www.youtube.com/embed/i1gE3nyQnKg', 
          ]; 
          var video = videos[Math.floor(Math.random()*videos.length)]; 

          return video; 
         } 

         function displayRandomVideo() { 
          var htmlVideo = document.getElementById("randomVideo"); 
          htmlVideo.src = getRandomVideo(); 
         } 
         displayRandomVideo(); 
        </script> 

回答

1

只要在显示完videa后取消注册onLoad事件。

function displayRandomVideo() { 
     var htmlVideo = document.getElementById("randomVideo"); 
     htmlVideo.src = getRandomVideo(); 
     htmlVideo.onload=null; 
} 

jsfiddle

0

你为什么要使用IFRAME的onload事件摆在首位?

$(window).load(displayRandomVideo); 

会做到这一点,只是删除< iframe>标记中的onload属性。