0
var extension= { 
check_domain : function(domain){ 
     //checking the domain name where event should occur........ 
}, 
on_load: function(e) { 
    var doc_event = e.originalTarget; 
extension.check_domain(doc_event.location.href); 
}, 
init: function(e) { 
if(gBrowser){ 
    gBrowser.addEventListener("DOMContentLoaded", this.on_load, false); 
    } 
} } window.addEventListener( "load", function(e) { extension.init(); }, false); 

点击新标签或链接时,ON_LOAD函数被调用打开从活动标签链接到新的选项卡。但我的问题是,如果我们打开从活动标签到新标签的新链接,则新标签中发生的事件发生在活动标签中,而新标签加载在背景中。而且,如果我们正在打开链接的数量,因为所有事件都发生在活动选项卡中,而不是在新选项卡中。事件发生在相同的标签,而在火狐狸extenion

我想要的是该事件应该发生在新选项卡中,即使它在后台运行.. 如何识别新选项卡并使事件发生在新选项卡中...(可选=> )没有使新标签成为活动标签。

回答

1

您没有解释如何检查事件发生在哪个选项卡上,我怀疑您只是查看当前活动的选项卡 - 当然,如果在背景选项卡中加载了某些内容,它将不起作用。而应该看e.target(即加载的文件),并检查其对应的选项卡有:

on_load: function(e) { 
    var doc = e.target; 
    var browser = gBrowser.getBrowserForDocument(doc); 
    ... 
}, 

这将给你在文档加载的标签的<browser>元素(也可能是null如果文档加载不是顶级文件)。

+0

感谢,浏览器元素使我的脚本更容易,但我的问题没有解决.......应该在新标签中发生的事件仍然在旧标签中发生.......请帮忙.. – KAS