我正在为 Firefox 编写扩展程序。基本上通过使用getElementsByClassName,我正在搜索一个特定的类,如果有任何命中,我将使用以下方法重定向页面:gBrowser.loadURI 问题是如果我通过鼠标中键打开链接,该链接将在背景选项卡。因此,如果该页面中的上述类标准有任何命中,则会重定向活动选项卡而不是免费选项卡,这是一种错误的行为。所以基本上我想使用类似的 loadURI 函数,但对于特定的选项卡,而不是当前的活动选项卡。除了 loadURI,我还可以使用 window.location = " http://www.google.com/ "。但是不知何故,当我使用 window.location 时,ff 窗口中的每个按钮都会消失,就像全视图一样。您对重定向非活动标签有任何想法吗?
问问题
164 次
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>
。gBrowser
和browser
(那个getBrowserForDocument()
返回)。
(我是凭记忆做的;你可能需要稍微摆弄一下)
于 2013-08-27T22:56:12.120 回答