1

YouTubeプレーヤーが終了したときに別のWebページにリダイレクトできるように、イベントをキャッチしようとしています。しかし、それは機能しません。誰でも何か間違ったことを見つけることができますか? JavaScript は正常にコンパイルされるようです。

ページ全体のコードは次のとおりです (実際には、以下のブラウザーのソース表示ページから貼り付けました。
かなり単純です。イベントは onYouTubePlayerAPIReady() 関数にリストされており、コードが終了したときに発生するはずです。 'alert' を入力して、そうであるかどうかを確認しましたが、そうではないようです:

    <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>
4

1 に答える 1

0

上に貼り付けたものにはタイプミスがあります。行の前に開始タグがありません:

$(document).ready(function () {

そのため、JavaScript はブラウザによって解釈されません。私があなたのコードを取得して追加したところ、あなたが望んでいるように実行されました.

于 2012-12-05T18:25:43.890 に答える