Javascript onPageLoad在Firefox扩展开发中无法正常工作

Javascript onPageLoad在Firefox扩展开发中无法正常工作,javascript,firefox-addon,xul,Javascript,Firefox Addon,Xul,我是Firefox扩展开发新手,正在做我的第一个程序。 我只需要在它加载页面后弹出一个警报。 我的代码是这样的: var myExtension = { init: function() { if(gBrowser) gBrowser.addEventListener("DOMContentLoaded", this.onPageLoad, false); }, onPageLoad: function(aEvent) { alert("Loaded"); }

我是Firefox扩展开发新手,正在做我的第一个程序。 我只需要在它加载页面后弹出一个警报。 我的代码是这样的:

var myExtension = {  
init: function() {    
    if(gBrowser) gBrowser.addEventListener("DOMContentLoaded", this.onPageLoad, false);  
},  
onPageLoad: function(aEvent) { 
alert("Loaded");  
}
}  
window.addEventListener("load", function load(event){  
window.removeEventListener("load", load, false);
myExtension.init();    
},false); 
但我有好几次收到警报箱。 然后我找到了关于“#文档”,然后我添加了一个IF条件:

onPageLoad: function(aEvent) { 
    if (aEvent.originalTarget.nodeName == '#document')  {
    alert("Loaded");  
    }
}
不幸的是,我还是得到了同样的结果。
请就此向我提供建议。

这可能是一个iframe问题。要筛选出iFrame,请执行以下操作:

onPageLoad: function(aEvent) { 
    let ot=aEvent.originalTarget;
    if (ot.nodeName == '#document' && !ot.defaultView.frameElement)  {
    alert("Loaded");  
    }
}

您可以在MDN上找到拦截Firefox插件页面加载的几种方法的说明:

选择正确的解决方案取决于您想要实现的目标

  • 当某些特定页面加载时,是否要执行某些操作
  • 加载任何页面时,是否要执行某些操作
  • 当整个页面加载(onload)时,当 文档已就绪(ondomready)或当页面显示在Firefox中时 更改,例如切换或打开选项卡时(这需要完全 不同的方法