2013-03-19 101 views
4

我试图从img中提取YouTube视频ID,然后将其传递到iframe中以播放嵌入的视频。我的iframe是在一个div内,直到img被点击时才会隐藏:更改JavaScript不工作的iframe src

<div id="testimonialbackground" style="display:none;"> 
    <a href="#" onclick="toggledisplay(this);">Click here</a> to close the video 
    <iframe id="testimonialframe" src="" frameborder="0" allowfullscreen></iframe> 
</div> 
<img src="http://img.youtube.com/vi/x-ROeKGEYSk/1.jpg" onclick="toggledisplay(this);" /> 

这里是JavaScript。它正常工作,直到这条线elem.setAttribute('src', newsrc);,此时我的页面死机:

function toggledisplay(obj) { 
    var div = document.getElementById('testimonialbackground'); 
    var elem = document.getElementById('testimonialframe'); 
    if (div.style.display == "block") { 
     div.style.display = "none"; 
     elem.setAttribute('src', ""); 
    } 
    else { 
     div.style.display = "block"; 
     var explosion = obj.src.split("/"); 
     var newsrc = "http://www.youtube.com/embed/" + explosion[4] + "?autoplay=1"; 
     elem.setAttribute('src', newsrc); // <---- BROKEN LINE RIGHT HERE 
     elem.contentWindow.location.reload(); //to refresh the iframe 
    } 
} 

感谢您的帮助!

回答

4

src是可以直接访问您的线路,这样反而elem.setAttribute('src', newsrc);只是使用这个属性:

elem.src = "http://www.youtube.com/embed/" + explosion[4] + "?autoplay=1"; 

一旦您设置了src也没有必要刷新iframe,如设置src会这样做自动。有关重新加载iframes的更多信息,请参阅What's the best way to reload/refresh an iframe using JavaScript? 。 (基本上它指出你可以设置srciframe自己刷新iframe)。