重定向特定选项卡Firefox添加

时间:2013-08-27 21:43:50

标签: javascript firefox firefox-addon firefox-addon-sdk

我正在为firefox写一个exntension。基本上通过使用getElementsByClassName,我正在搜索特定的类,如果有任何命中,我将使用以下命令重定向页面:gBrowser.loadURI 问题是如果我通过鼠标中键打开一个链接,该链接在后台选项卡中打开。因此,如果该页面中的上述类标准受到任何影响,则会重定向活动选项卡而不是bacground,这是一种错误的行为。 所以基本上我想使用类似的loadURI函数但是对于特定的选项卡,而不是当前的活动选项卡。 我也可以使用window.location =“http://www.google.com/”而不是loadURI。但不知何故,当我使用window.location时,ff窗口中的每个按钮都会消失,就像全视图一样。 您是否知道重定向非活动选项卡?

1 个答案:

答案 0 :(得分: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> aka. gBrowserbrowser(返回一个getBrowserForDocument())。

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