Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Firefox扩展中打开从活动选项卡到新选项卡的链接时,在同一选项卡中发生的事件_Javascript_Firefox_Firefox Addon_Addeventlistener_Dom Events - Fatal编程技术网

Javascript 在Firefox扩展中打开从活动选项卡到新选项卡的链接时,在同一选项卡中发生的事件

Javascript 在Firefox扩展中打开从活动选项卡到新选项卡的链接时,在同一选项卡中发生的事件,javascript,firefox,firefox-addon,addeventlistener,dom-events,Javascript,Firefox,Firefox Addon,Addeventlistener,Dom Events,单击新选项卡或链接时,将调用on_load函数。但我的问题是,如果我们打开从活动选项卡到新选项卡的新链接,新选项卡中支持发生的事件将发生在活动选项卡中,而新选项卡将在后台加载。如果我们打开的链接数量如此之多,则所有事件将发生在活动选项卡中,而不是新选项卡中 我想要的是,事件应该在新选项卡中发生,即使它在后台运行。。 如何识别新选项卡并使事件在新选项卡中发生…(可选=>),而不使新选项卡成为活动选项卡。您没有解释如何在哪个选项卡中检查事件发生,我怀疑您只是查看当前活动的选项卡-如果在后台选项卡中加

单击新选项卡或链接时,将调用on_load函数。但我的问题是,如果我们打开从活动选项卡到新选项卡的新链接,新选项卡中支持发生的事件将发生在活动选项卡中,而新选项卡将在后台加载。如果我们打开的链接数量如此之多,则所有事件将发生在活动选项卡中,而不是新选项卡中

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

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

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);

这将为您提供加载文档的选项卡的
元素(如果加载的文档不是顶级文档,也可能是
null

谢谢,浏览器元素使我的脚本更容易,但我的问题没有解决。。。。。。。应在新选项卡中发生的事件仍在旧选项卡中发生…….请帮助。。
on_load: function(e) {
  var doc = e.target;
  var browser = gBrowser.getBrowserForDocument(doc);
  ...
},