4

我正在使用 Firefox Add-On SDK 将 Chrome 扩展移植到 Firefox。在 Chrome 中,加载像 Underscore 或 Backbone 这样的第三方库是微不足道的。在我的特殊情况下,我使用 jQuery、Underscore 和 Backbone 来定义与跨域 REST API 通信的模型。

我不清楚你如何在 Firefox 中做类似的事情。从我可以看到 main.js 直接对应于 Chrome 的后台页面,但似乎没有加载 js 文件的方法。

我错过了什么吗?

4

1 回答 1

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 模块运行的上下文与带有 DOM 的典型网页上下文不同,这是 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 中有几个模块可以让您为 firefox 添加自定义 UI,您可能会找到关于该主题的有用教程: https ://addons.mozilla.org/en-US/developers/docs/sdk/latest /dev-guide/tutorials/index.html

于 2012-11-21T11:59:12.773 回答