繁体   English   中英

在firefox xul扩展中使用requirejs

[英]using requirejs within a firefox xul extension

我想使用requirejs在firefox xul插件中管理我的代码,但无法找到我的模块。

我知道xul与data-main属性的配合不好,所以我将main.js脚本作为第二个脚本:

<script src="chrome://myPackage/content/require.js" type="application/x-javascript"></script>
<script src="chrome://myPackage/content/main.js" type="application/x-javascript"></script>

这成功调用了脚本,并且main.js中可以使用require函数,但是当我运行时

require(['lib1'], function(lib1){
    alert(lib1.val1);
})

警报永远不会弹出(lib1与main.js位于同一目录中)。

我已经尝试过并且没有将baseUrl设置为

require.config({
    baseUrl: "chrome://myPackage/content/"
})

而且这两种方式都不起作用。

有谁知道我如何获得require.js在合适的位置查找我的模块?

附录**

我添加了一个错误处理功能,返回的错误代码是

http://requirejs.org/docs/errors.html#timeout

我已将测试模块成功加载到普通网页中。 这似乎可以确认问题是路径配置(失败之前还需要15秒的超时)

Firebug似乎有一个有效的requirejs版本。 但更重要的是,它们具有更好的mini-require.js ,当在叠加层中使用时,它们不会污染共享的全局范围(如果正确使用:p)

我建议您看看这些实现以及使用它的代码。

主动警告 :请注意,如果您的加载项使用的代码通过定义全局函数或变量或隐式声明函数中的变量,从而在覆盖图( window )中的范围上定义了许多新属性,则这可能会干扰其他代码的运行范围相同(浏览器代码本身和其他加载项)。 此外,如果您想将附件提交到addons.mozilla.org,那么如果您的附件“污染”了主叠加层中的全局范围/命名空间,则审阅者可能不会将其公开。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM