2013-03-19 139 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)。