2

我正在为 Firefox 编写扩展程序。基本上通过使用getElementsByClassName,我正在搜索一个特定的类,如果有任何命中,我将使用以下方法重定向页面:gBrowser.loadURI 问题是如果我通过鼠标中键打开链接,该链接将在背景选项卡。因此,如果该页面中的上述类标准有任何命中,则会重定向活动选项卡而不是免费选项卡,这是一种错误的行为。所以基本上我想使用类似的 loadURI 函数,但对于特定的选项卡,而不是当前的活动选项卡。除了 loadURI,我还可以使用 window.location = " http://www.google.com/ "。但是不知何故,当我使用 window.location 时,ff 窗口中的每个按钮都会消失,就像全视图一样。您对重定向非活动标签有任何想法吗?

4

1 回答 1

3

假设您正在使用这样的代码(似乎是这样,请提供您的代码以供将来参考):

function pageLoad(event) {
  var doc = event.originalTarget;
  if (/* doc matches class */) {
    gBrowser.loadURI(newURI, ...);
  }
}

addEventListener("load", function () {
  gBrowser.addEventListener("load", pageLoad, true);
}, false);

将侦听器更改为如下内容:

function pageLoad(event) {
  var doc = event.originalTarget;
  if (/* doc matches class */) {
    gBrowser.getBrowserForDocument(doc).loadURI(newURI, ...);
  }
}

当然,最好使用一些错误处理。

又见<tabbrowser>gBrowserbrowser(那个getBrowserForDocument()返回)。

(我是凭记忆做的;你可能需要稍微摆弄一下)

于 2013-08-27T22:56:12.120 回答