0

私の Firefox アドオンでは、ナビゲーション ツールバーにカスタム ボタンがあります。私の *.xul ファイルには、次のものがあります。

<toolbarpalette id="BrowserToolbarPalette">
  <toolbarbutton id="myaddon-button-1"/>
  </toolbarpalette>

<!-- button details -->
<toolbarbutton id="myaddon-button-1"
  label="MyAddon"
  tooltiptext="My Addon Desc"
  oncommand="myaddon[1]()"
  class="toolbarbutton-1 chromeclass-toolbar-additional myaddon"
  />

私の *.js スクリプトには、次のものがあります。

myaddon = {

1: function () {

    ytplayer = gBrowser.contentDocument.getElementById("movie_player");

    alert ("before");

    alert (ytplayer.getCurrentTime());

    alert ("after");

},

カスタム ツールバー ボタンをクリックした後、「前」にアラートが表示され、「後」にアラートが表示されません。エラーコンソールには、

Error: ytplayer.getCurrentTime is not a function

GreaseMonkey に関連する同様の質問で、HTML の一部を埋め込み、内部で YouTube API を呼び出すことについて読みました。動作します。Firefox でテストしました。しかし、html要素を挿入してクリックしたくありません。ツールバー ボタン ハンドラーで getCurrentTime などの YouTube API 関数を呼び出す方法の手がかりを教えてください。

ありがとう、ラクーン

4

1 に答える 1

1
var sandbox = Components.utils.Sandbox(gBrowser.contentWindow,{sandboxPrototype:gBrowser.contentWindow, wantXrays:false});
var currenttime = Components.utils.evalInSandbox("document.getElementById('movie_player').getCurrentTime()", sandbox);
于 2013-09-02T21:11:48.747 に答える