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

时间:2014-02-23 07:49:37

标签: 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目录中,它就不能被引用了(不作为网页打开,不显示为图像等):

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

在文档中说明data.url()相对于data目录有效,但不清楚only目录是否有效data?是否可以使用其他顶级目录,或者我没有选项,需要将我的所有插件文件放在data目录中?

1 个答案:

答案 0 :(得分:1)

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

我不知道如何在SDK中获取jar文件的自我路径。但是一旦你获得自我路径,那么你可以加载该文件。

实际上有些想法: 可能会执行一个console.log(data.url('control.html')),它应该为您提供数据文件夹的位置,例如: 罐子://blah/blah/blah/data/control.html

所以做字符串maniuplation并删除数据以获取 罐子://嗒嗒/等等/嗒嗒/

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

如果foo与data文件夹在同一目录中。只需执行data.url('icong.png')的console.log并在此处发布,我可以帮助您进行字符串操作