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