2014-11-03 149 views
0

我試圖用jQuery更改YouTube視頻iframe源代碼,但看起來像是遇到了跨越原點問題。我的jquery代碼:用jQuery更改YouTube iframe src

var videourl = $(".videourl").html(); 
$(".actualyoutube iframe").attr('src',videourl); 

iframe獲取新的src值,但未顯示視頻。有任何想法嗎?

擴展解釋:

有一個彈出式的DIV與嵌入式YouTube視頻

<div class="youtubepopup"> 
    <div class="closeyoutube">X</div> 
    <div class="actualyoutube"> 
     <iframe width="420" height="315" src="" frameborder="0" allowfullscreen></iframe> 
    </div> 
</div> 

有它包含一個新的src網址一定TD。除此td外,沒有其他地方或方法可以獲得此網址。

<td class="videourl">//youtube.com/whatevervideo</td> 

而且有一個腳本應該在打開的彈出窗口中添加src並在關閉時刪除。

var videourl = $(".videourl").html(); 
$(".youtubecap").click(function() { 
    $(".actualyoutube iframe").attr('src', videourl); 
    $(".youtubepopup").fadeIn('slow'); 
}); 
$(".closeyoutube").click(function() { 
    $(".youtubepopup").fadeOut('slow'); 
    $(".actualyoutube iframe").removeAttr('src'); 
}); 
$(".youtubepopup").click(function() { 
    $(".youtubepopup").fadeOut('slow'); 
}); 

p.s.現在我明白了,user3385530可能是對的

+1

控制檯出錯? 'videourl'嵌入了url版本嗎?您應該在線提供簡約樣本來複制您的問題 – 2014-11-03 21:44:03

+0

拒絕在框架中顯示'https://www.youtube.com/watch?v=S2ISrpNM-0s',因爲它將'X-Frame-Options'設置爲'SAMEORIGIN' – whaaaaaaz 2014-11-03 21:55:41

+0

所以設置src使用嵌入URL版本//www.youtube.com/embed/S2ISrpNM-0s – 2014-11-03 21:56:58

回答

1

無法在iframe中顯示www.youtube.com中的頁面。正確的方法是在您的網頁中使用他們的視頻嵌入代碼。 iframe嵌入更容易,你需要在一個iframe中顯示的網址是這樣的:

http://www.youtube.com/embed/VIDEO_ID_GOES_HERE 

只是一個IFRAME如這裏面你的網頁:

<iframe width="560" height="315" src="http://www.youtube.com/embed/VIDEO_ID_GOES_HERE" frameborder="0" allowfullscreen></iframe> 

最後,假設你能從中提取使用jQuery的URL視頻ID,你可以用它來顯示視頻*:

var videoid = "S2ISrpNM-0s"; 
$(".actualyoutube iframe").remove(); 
$('<iframe width="420" height="315" frameborder="0" allowfullscreen></iframe>') 
    .attr("src", "http://www.youtube.com/embed/" + videoid) 
    .appendTo(".actualyoutube"); 

*改變一個iframe的src屬性,已經是DISP製作YouTube視頻無效;因此,我建議使用destroy-iframe-recreate-iframe方法。

+0

是啊...我需要src網址是動態的... – whaaaaaaz 2014-11-03 22:23:59

+0

查看修訂答案。 – 2014-11-03 22:26:26

+0

相同拒絕在框架中顯示'https://www.youtube.com/watch?v=S2ISrpNM-0s',因爲它將'X-Frame-Options'設置爲'SAMEORIGIN'。 – whaaaaaaz 2014-11-03 22:32:54

0

這不起作用,因爲頁面被解析,只有刷新時纔會發生新的ulr。

您需要使用ajax預載新頁面的頁面,然後設置iframe。