我正在为 Firefox 编写一个扩展。基本上通过使用 getElementsByClassName,我正在搜索特定的类,如果有任何命中,我将使用以下命令重定向页面: gBrowser.loadURI 问题是,如果我通过鼠标中键打开链接,该链接将在后台选项卡中打开。因此,如果该页面中存在任何符合上述类标准的点击,事件选项卡将被重定向,而不是免费选项卡,这是一种错误的行为。 所以基本上我想使用类似的 loadURI 函数,但对于特定选项卡,而不是当前事件选项卡。 除了 loadURI,我还可以使用 window.location = "http://www.google.com/ "。但不知何故,当我使用 window.location 时,ff 窗口中的每个按钮都会消失,就像全 View 一样。 您对重定向非事件选项卡有什么想法吗?
最佳答案
假设您正在使用这样的代码(似乎是这样,请无论如何提供您的代码以供将来引用):
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()
返回)。
(我是凭内存做的;你可能需要稍微修改一下)
关于javascript - 重定向特定选项卡 Firefox 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18475985/