Firefox addon 是否可以引用Firefox插件中的非数据目录?

Firefox addon 是否可以引用Firefox插件中的非数据目录?,firefox-addon,firefox-addon-sdk,Firefox Addon,Firefox Addon Sdk,在我的firefox插件代码中,如果我引用data目录中的文件,所有这些都可以正常工作: var button = widget.Widget({ id: 'foo', label: 'bar', contentURL: data.url('icon.png'), onClick: function() { tabs.open(data.url('control.html')); }, }); 但是如果我把同一个文件放到foo目录中,它就不能再被引用了(不能作为网页

在我的firefox插件代码中,如果我引用
data
目录中的文件,所有这些都可以正常工作:

var button = widget.Widget({
  id: 'foo',
  label: 'bar',
  contentURL: data.url('icon.png'),
  onClick: function() {
    tabs.open(data.url('control.html'));
  },
});
但是如果我把同一个文件放到
foo
目录中,它就不能再被引用了(不能作为网页打开,不能显示为图像等):


在文档中指出,
data.url()
相对于
数据
目录起作用,但不清楚它是否只对
数据
目录起作用?是否可以使用其他顶级目录,或者我没有选项,需要将我的所有加载项文件放在
data
目录中?

可以。但是你不能使用数据方法

我不知道如何在SDK中获得jar文件的自路径。但是一旦你得到了self路径,你就可以加载这个文件了

实际上,在一些想法上: 可能需要执行一个console.log(data.url('control.html'))来为您提供数据文件夹的位置,例如: jar://blah/blah/blah/data/control.html

因此,请执行字符串编译并删除数据以获得 jar://blah/blah/blah/

然后再加上jar://blah/blah/blah/foo/stuff 在foo.html中

类似于如果foo与data文件夹位于同一目录中。只要对data.url('icong.png')做一个console.log并在这里发布,我就可以帮助您进行字符串操作

var button = widget.Widget({
  id: 'foo',
  label: 'bar',
  contentURL: data.url('icon.png'),
  onClick: function() {
    tabs.open(data.url('../foo/control.html'));
  },
});