我正在使用Firefox Add-On SDK将Chrome扩展程序移植到Firefox。在Chrome中,加载第三方库(如Underscore或Backbone)非常简单。在我的特定情况下,我使用jQuery,Underscore和Backbone来定义与跨域REST API通信的模型。
我不清楚你如何在Firefox中做类似的事情。从我可以看到main.js直接对应Chrome的背景页面,但它没有出现加载js文件的方法。
我错过了什么吗?
答案 0 :(得分:2)
附加SDK支持CommonJS模块sysem,nodejs也使用相同的模块 https://github.com/mozilla/addon-sdk/tree/master/app-extension
Underscore支持commonjs模块格式&那里可以轻松装载 https://github.com/documentcloud/underscore/blob/master/underscore.js#L54-L65
您需要的只是在main.js旁边删除下划线并按如下方式加载:
var _ = require("./underscore")
我相信骨干也可以像人们使用它一样加载 在nodejs上。
但它不适用于jQuery,那是因为附加SDK模块的上下文 run与使用DOM的典型Web页面上下文不同,这是jQuery的设计 跟...共事。
现在,如果您想要进行跨域请求,SDK会附带一个模块来执行此操作: https://addons.mozilla.org/en-US/developers/docs/sdk/latest/packages/addon-kit/request.html 还有另一个低级XHR模块,您可以使用它: https://addons.mozilla.org/en-US/developers/docs/sdk/latest/packages/api-utils/xhr.html
因此,如果您只是想编写模型并与REST API交谈,那么它应该是非常简单的,我是 不确定jQuery在你的用例中的作用是什么。它意味着您想要的DOM和UI 显示。如果是这样,SDK中有几个模块可以让你为它添加自定义UI firefox,你可以找到有关该主题的有用教程: https://addons.mozilla.org/en-US/developers/docs/sdk/latest/dev-guide/tutorials/index.html