1

play()関数を使用して埋め込みYouTubeビデオを再生しています。これはすべてyoutubeapiを使用しています。以下は私が持っているコードです。ChromeとIEでは完全に機能しますが、Firefoxでは機能しません。

    alert(typeof ytplayer);

このコードのビットは、ytplayerがどのタイプの「もの」であるかを示しています。ChromeとIEでは、オブジェクトが作成されます(ビデオにはobjectメソッドが埋め込まれています)。Firefoxでは未定義と表示されているため、問題が発生しています。

ここにテストWebサイトがあります:http://lostinawesome.blogspot.com.au/2012/04/test-post.html

再生ボタンまたは画像をクリックして、YouTubeオーディオを再生します。Firefoxでは、おそらくそれはあなたのために機能しません。

これをFFでプレイするためのアイデアはありますか?

私のコード:

javascript:

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

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

   function play() {

   alert(typeof ytplayer);

   if (ytplayer) {
ytplayer.playVideo();
  }
}

html:

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


    <param name="movie" value="http://www.youtube.com/v/u8C-ZTQJIkU?enablejsapi=1&amp;playerapiid=ytplayer&amp;version=3" >


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


    </param>
    </object>

    <a href="javascript:void(0);" onclick="play();">Play</a>

作業コード:

var ytplayer = document.getElementById( "ytplayer");に変更する必要がありました。ytplayerはどこでも変数として宣言されていませんでしたが、何らかの理由でchromeとIEで動作しました。

    function play() {
    var ytplayer = document.getElementById(&quot;ytplayer&quot;);
    alert(typeof ytplayer);

      if (ytplayer) {
        ytplayer.playVideo();
      }
    }
4

1 に答える 1

1

ご覧のとおり、すべてのブラウザで機能するとは限らないため、IDを使用するだけでなく、要素を明示的に選択する必要があります。

への変更

var ytplayer = document.getElementById('ytplayer');
ytplayer.playVideo();
于 2012-05-15T07:39:44.167 に答える