2011-02-08 15 views
3

ツールバーにボタンを持つFireFoxアドオンを書きました。 clickイベントで、EMBED要素を見つけようとしていて、その上でpauseVideo()を呼び出そうとしていますが、動作しません。コントロールFireFoxアドオンのJavascriptを使用しているYoutubeビデオプレーヤー

私は、私が手オブジェクトがEMBEDことについてとても間違いありません確信している私は、「SRC」

var p1 = content.document.getElementById("movie_player"); 
window.alert(p1.src); 
を表示するため

問題がpauseVideo()は動作しませんです。

try 
{ 
p1.pauseVideo(); 
} 
catch(e) 
{ 
    window.alert(e); // this gives 'pauseVideo() is not a function' 
} 

また、 'allowscriptaccess'属性は 'always'に設定されています。 それがうまくいかない理由は何ですか?私はアイデアがありません。

ありがとうございます!

答えて

0

enablejsapiが設定されていることを確認してください。あなたは、YouTubeのプレイヤーと通信するためのpostMessageを使用する必要が https://developers.google.com/youtube/player_parameters#enablejsapi

+0

それが設定されてonYouTubePlayerReadyイベントが持っている後に、それはちょうどあなたが待っていることを確認するユーチューブの動画 –

+0

です起こった、そう。 –

+0

@Greg SchechterあなたはFirefoxのアドオンを知らないのですか?アドオンは異なって動作し、あなたの答えは悪いです – Jigberto

0

、このような何か:

var doc = content.document; 
    var scpt = doc.getElementById("uniq_script_id"); 
    if (!scpt) { 
     scpt = doc.createElement("script"); 
     scpt.type = "text/javascript"; 
     scpt.id = "uniq_script_id"; 
     var code = [ 
      'window.addEventListener("message", function(e) {', 
      ' var cmd = e.data;', 
      ' var player = document.getElementById("movie_player");', 
      ' player[cmd]();', 
      '}, false);' 
     ].join('\n'); 
     scpt.textContent = code; 
     doc.body.appendChild(scpt); 
    } 

    window.postMessage("pauseVideo", "*"); 
+0

アドオンでは動作しませんが、開発者コンソールを開いてコードを挿入するとコードがテストされました。なぜアドオンで動作していないのですか?私は今どのようにアドオンのページにスクリプトを添付し、あなたのコードが動作していないときに接続されています – Jigberto

関連する問題