0

我一直在编写 js/html 中的一些代码,效果很好。我现在正在尝试将其打包到 Firefox 的附加组件中,并且在正确获取 XUL 文档时遇到了一些问题。

普通旧 HTML/JS

在我的 html 测试文件中,<head></head>我有:

<script type="text/javascript" src="js/MyCode.js"></script> 

</body>我之前的测试文件结束时:

<script type="text/javascript">MyCode.Static.Init();</script>

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 中所做的事情的正确方法吗?

4

4 回答 4

1

请参阅:https ://developer.mozilla.org/en/Code_snippets/Progress_Listeners了解如何捕获所有页面更改/加载/重新加载

于 2010-03-19T17:21:07.963 回答
0

你确定 gBrowser 已经准备好了吗?就像健全性检查一样,将脚本标签更改为

 alert(gBrowser); 

确保 gBrowser 已准备就绪。

于 2010-03-19T03:21:57.380 回答
0

这是对的:

gBrowser.addEventListener("load",function () { MyCode.Static.Init(); }, false);

于 2010-03-19T05:25:21.087 回答
-1

怎么样:

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

?

于 2010-03-18T15:48:00.527 回答