Edw*_*ien 4 javascript youtube iframe
我正在尝试从img中提取YouTube视频ID,然后将其传递到iframe以播放嵌入视频.我的iframe在div中,在单击img之前是不可见的:
<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);" />
Run Code Online (Sandbox Code Playgroud)
这是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
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
src是一个你可以直接访问的属性,所以代替你的行,elem.setAttribute('src', newsrc);只需使用:
elem.src = "http://www.youtube.com/embed/" + explosion[4] + "?autoplay=1";
Run Code Online (Sandbox Code Playgroud)
一旦你设置了src就没有必要刷新iframe,因为设置src将自动执行.请参阅使用JavaScript重新加载/刷新iframe的最佳方法是什么?
有关重新加载的更多信息iframes.(基本上它指出你可以设置src一个iframe自己来刷新iframe).