使用JavaScript无法更改iframe src

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)

谢谢你的帮助!

Rya*_*yan 5

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).