2012-07-19 83 views
0

我試圖將YouTube視頻嵌入到我們客戶的某個網站,並且它需要能夠在播放完畢後顯示圖像。我認爲最簡單的方法是去除包含div的圖像,以便顯示底層圖像..但是,我有點困難。我對JavaScript的知識知之甚少,而且我通常將這些工作交給的部分現在都無法使用。YouTube JS API - onStateChange

我遇到的問題是包含div不被刪除。播放完成後,播放器只顯示相關視頻列表 - 不會奇蹟般地消失!

任何人都可以建議我到目前爲止寫的代碼?

感謝

-Al

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script> 
<div id="ytapiplayer"> 
    You need Flash player 8+ and JavaScript enabled to view this video. 
</div> 
<script type="text/javascript"> 

var params = { allowScriptAccess: "always" }; 
var atts = { id: "myytplayer" }; 
swfobject.embedSWF("http://www.youtube.com/v/VIDEO-ID?enablejsapi=1&playerapiid=ytplayer&version=3&autoplay=1&controls=0&modestbranding=1&showinfo=0&autohide=1", 
        "ytapiplayer", "621", "244", "8", null, null, params, atts); 
// listen 
function onYouTubePlayerReady(playerId) { 
    var ytplayer = getElementById("myytplayer"); 
    ytplayer.addEventListener("onStateChange", "onytplayerStateChange"); 
} 
// closediv 
function onytplayerStateChange(newState) { 
    if (newState === 0){ 
     $('ytapiplayer').remove(); 
    } 
} 

回答

1

你的jQuery選擇是錯誤的。

$('ytapiplayer').remove(); 

你的意思是查找名爲ytapiplayer一個HTML元素,你需要使用一個#說,這是一個id。

所以,該行應爲:

$('#ytapiplayer').remove(); 
+0

感謝您的快速反應epascarello,可惜它並沒有幫助完全解決我的問題 - onStateChange被調用,但股利是不被刪除。有任何想法嗎? – 2012-07-19 16:32:43

+0

所以你修正了代碼,你在那裏添加了一個調試語句來看'newState = 0'嗎? – epascarello 2012-07-19 17:24:57

0

我知道這已經在這裏一段時間,但他的評論中表示,它仍然無法正常工作。

代碼的另一個問題是他測試newState的位置,他應該測試newState.data。

他:

function onytplayerStateChange(newState) { 
    if (newState === 0){ 
     $('ytapiplayer').remove(); 
    } 
} 

需求是:

function onytplayerStateChange(newState) { 
    if (newState.data === 0){ 
     $('ytapiplayer').remove(); 
    } 
}