Firefox插件中的Angularjs-从内容脚本访问扩展资源

Firefox插件中的Angularjs-从内容脚本访问扩展资源,angularjs,firefox-addon,Angularjs,Firefox Addon,我一直在尝试将现有的Chrome扩展移植到Firefox。 扩展使用内容脚本将元素添加到页面,并继续从该元素引导angular应用程序。 此部分按预期工作,但使用templateUrl的单个指令被阻止。单步执行代码会提供错误消息,如拒绝访问受限URI和NS\u error\u DOM\u BAD\u URI 在Chrome中,这个问题通过“网络可访问资源”白名单解决。 这似乎表明在Firefox中没有类似的方式来访问扩展资源。这将是非常不幸的,因为尽管我可以内联所有相关模板,但扩展还包括许多以编

我一直在尝试将现有的Chrome扩展移植到Firefox。
扩展使用内容脚本将元素添加到页面,并继续从该元素引导angular应用程序。
此部分按预期工作,但使用templateUrl的单个指令被阻止。单步执行代码会提供错误消息,如
拒绝访问受限URI
NS\u error\u DOM\u BAD\u URI

在Chrome中,这个问题通过“网络可访问资源”白名单解决。
这似乎表明在Firefox中没有类似的方式来访问扩展资源。这将是非常不幸的,因为尽管我可以内联所有相关模板,但扩展还包括许多以编程方式插入页面的图像。
有没有办法在SDK扩展中获取扩展资源?
如果不是,那么使用遗留扩展(如暗示的那样)这样做是否相当容易?

您可以使用SDK中的为
数据
目录中的文件获取可解析的资源URI。如果您的角度文件位于
/data/
中,则可以通过以下方式检索:

const self = require('sdk/self');
console.log(self.data.url('angular.js'));
// Prints the url of `./data/angular.js`
您可以使用SDK中的获取
data
目录中文件的可解析资源URI。如果您的角度文件位于
/data/
中,则可以通过以下方式检索:

const self = require('sdk/self');
console.log(self.data.url('angular.js'));
// Prints the url of `./data/angular.js`

不幸的是,这只适用于main.js或类似文件(而不是内容脚本)。我使用self.options将URI从main.js传递到内容脚本,但不允许实际访问它们。内容脚本不是特权代码——它们没有commonjs
require
loader。不幸的是,这只适用于main.js或类似的(不适用于内容脚本)。我使用self.options将URI从main.js传递到内容脚本,但不允许实际访问它们。内容脚本不是特权代码——它们没有commonjs
require
loader。