2012-12-05 140 views
1

我試圖捕捉一個事件,以便當YouTube播放器結束時,我可以重定向到另一個網頁。但它不起作用。任何人都可以發現任何錯誤JavaScript似乎編譯確定。youtube api不會在視頻結束時觸發ENDED事件(使用iframe)

這裏就是整個頁面的代碼(其實我從下面的瀏覽器的查看源代碼頁粘貼吧。
它相當簡單,該事件在onYouTubePlayerAPIReady()函數列出,我認爲它應該火的時候,代碼結束我已經把「警報」,看看它看起來它並不:。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js" type="text/javascript"></script> 

    <script type="text/javascript"> 
     $(document).ready(function() { 
      var tag = document.createElement('script'); 
      tag.src = "http://www.youtube.com/player_api"; 
      var firstScriptTag = document.getElementsByTagName('script')[0]; 
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 
     }) 


      // 3. This function creates an <iframe> (and YouTube player) 
    // after the API code downloads. 
    function onYouTubePlayerAPIReady() { 
     player = new YT.Player('iframeid', { 
      events: { 
       'onReady': onPlayerReady,   
       'onStateChange': onPlayerStateChange 
      } 
     }); 
    } 

    function onPlayerReady(event) { 

    } 
    function onPlayerStateChange(event) { 

     if (event.data == YT.PlayerState.ENDED) { 
      alert("video is over"); 
      location.href= 'k_Origins.aspx'; 
     } 
     else if (event.data == YT.PlayerState.PAUSED) { 

     } 
     else if (event.data == YT.PlayerState.PLAYING) { 

     } 
     else if (event.data == YT.PlayerState.BUFFERING) { 

     } 
     else if (event.data == YT.PlayerState.CUED) { 

     } 
     else { 

     } 

    } 

</script> 

</head> 
<body> 
    <form method="post" action="dostuff.aspx" id="form1"> 

<div id="ContainPlayer"> 

    <iframe id="iframeid" width="420" height="315" 
    src="http://www.youtube.com/embed/8X0ZkN_EtTE?hl=en&fs=1&autoplay=1&autohide=0&enablejsapi=1&modestbranding=1&playerapiid=ourvideoid&rel=0" 
    frameborder="0" ></iframe> 
    </div> 

    </div> 

    </form> 
</body> 
</html> 

回答

0

有一個在你上面貼上什麼錯字,你留下了一個開放標籤在 行:

$(document).ready(function() { 

所以JavaScript永遠不會被瀏覽器解釋。當我拿起你的代碼並添加它時,它就像你想要的那樣運行。

+0

錯字不是問題。問題是我的網址有origin屬性。換句話說,www.youtube.com/...origin=mysite.com。這顯然干擾了YouTube的api。我應該把它放在我的示例中,但我不想放棄我的網站。它只是向你展示,你必須把所有東西都放進去,不管你認爲它是否相關。 –

相關問題