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 元素并单击它们。您能否给我任何有关如何在工具栏按钮处理程序中调用 YouTube API 函数(如 getCurrentTime)的线索?

谢谢,浣熊

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 回答