4

埋め込まれた YouTube ビデオが JavaScript でいつ終了するかを調べる必要があります。

これは私の埋め込みコードです:

    <object id="ytplayer" height="35" width="560"><param name="movie" value="http://www.youtube.com/v/u8C-ZTQJIkU?version=3&enablejsapi=1&playerapiid=ytplayer&rel=0&fs=0&theme=light&showinfo=0&modestbranding=1&autohide=0&color=white">
    </param>
    <param name="allowFullScreen" value="false">


    </param>
    <param name="allowscriptaccess" value="always">


    </param>
    <embed src="http://www.youtube.com/v/u8C-ZTQJIkU?version=3&rel=0&fs=0&theme=light&showinfo=0&modestbranding=1&autohide=0&color=white" type="application/x-shockwave-flash" allowfullscreen="false" width="560" height="35" allowscriptaccess="always"></embed></object>

これは、いつ終了したかを知るためにこれまでに持っているコードですが、アラートは表示されません。何が間違っているかを見つけるのを手伝ってくれませんか?

    <script type="text/javascript" src="http://www.youtube.com/player_api"></script>
    <script type="text/javascript">
    function onYouTubePlayerReady(playerId) {
      ytplayer = document.getElementById("ytplayer");
      ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
    }

    function onytplayerStateChange(newState) {
       alert("Player's new state: " + newState);
    }
    </script>

感謝。

4

1 に答える 1

3

コードの一部しか表示されていないようです。objectタグには、 ytplayer に設定する必要がある id という属性が含まれている必要あります。完全に機能するコードは次のとおりです。

 <object type="application/x-shockwave-flash" id="ytplayer" data="http://www.youtube.com/v/u8C-ZTQJIkU?enablejsapi=1&amp;playerapiid=ytplayer&amp;version=3" width="425" height="356"><param name="allowScriptAccess" value="always">
    <param name="allowScriptAccess" value="always">
</object>

</body>
</html>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.1/swfobject.js"></script>    

<script type="text/javascript">

    function onYouTubePlayerReady(playerId) {
        var player = document.getElementById("ytplayer");
        player.addEventListener("onStateChange", "onytplayerStateChange");
    }

    function onytplayerStateChange(newState) {
        alert("New state " + newState); 
    }

</script>
于 2012-05-14T11:05:27.563 に答える