Javascript 页面加载后从XUL调用Init(Firefox插件)

Javascript 页面加载后从XUL调用Init(Firefox插件),javascript,firefox,firefox-addon,xul,add-on,Javascript,Firefox,Firefox Addon,Xul,Add On,我一直在用js/html编写一些代码,效果非常好。我现在正试图将其打包到Firefox的附加组件中,在正确使用XUL文档时遇到了一些问题 普通的旧HTML/JS 在我的html测试文件之间,我有: 在测试文件的末尾,在I之前: FIREFOX插件:OVERLAY.XUL 在扩展包中的overlay.xul文件中,我有: <?xml version="1.0"?> <overlay id="mycode" xmlns="http://www

我一直在用js/html编写一些代码,效果非常好。我现在正试图将其打包到Firefox的附加组件中,在正确使用XUL文档时遇到了一些问题

普通的旧HTML/JS

在我的html测试文件之间,我有:

在测试文件的末尾,在I之前:

FIREFOX插件:OVERLAY.XUL

在扩展包中的overlay.xul文件中,我有:

        <?xml version="1.0"?>
    <overlay id="mycode"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
        <script type="application/x-javascript" src="chrome://mycode/content/MyCode.js"></script>
        <script>
window.addEventListener("load", function () { gBrowser.addEventListener("load",MyCode.Static.Init,true); }, false);
        </script>
    </overlay>
这似乎没有进入方法,但我甚至不确定我是否已经让侦听器正常启动。这是复制我在纯旧html/js中所做工作的正确方法吗?

如何:

<script>
  window.addEventListener("load", function () { MyCode.Static.Init(); }, false);
</script>

您确定gBrowser准备好了吗? 作为健全性检查,将脚本标记更改为

 alert(gBrowser); 
以确保gBrowser已准备就绪

这是正确的:


gBrowser.addEventListenerload,函数{MyCode.Static.Init;},false

请参阅:有关如何捕获所有未按预期工作的页面更改/加载/重新加载

,该侦听器仅在创建新浏览器窗口时触发,而不是在创建新页面时触发。需要了解在浏览器中加载每个页面后如何调用init。
<script>
  window.addEventListener("load", function () { MyCode.Static.Init(); }, false);
</script>
 alert(gBrowser);