【问题标题】:Event occurring in same tab, while opening a link from active tab to new tab in Firefox extension事件发生在同一选项卡中,同时在 Firefox 扩展中打开从活动选项卡到新选项卡的链接
【发布时间】:2011-07-03 12:37:45
【问题描述】:
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 函数。但我的问题是,如果我们打开从活动选项卡到新选项卡的新链接,则应该在新选项卡中发生的事件发生在活动选项卡中,而新选项卡在后台加载。如果我们正在打开的链接数量就像所有事件都发生在活动选项卡中而不是新选项卡中。

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

【问题讨论】:

    标签: javascript firefox firefox-addon addeventlistener dom-events


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢,浏览器元素使我的脚本更容易,但我的问题没有解决....... 应该在新选项卡中发生的事件仍在旧选项卡中发生.. .....请帮忙..
    猜你喜欢
    • 1970-01-01
    • 2017-01-05
    • 1970-01-01
    • 1970-01-01
    • 2016-03-26
    • 1970-01-01
    • 2012-04-25
    • 1970-01-01
    • 2011-02-18
    相关资源
    最近更新 更多