可以打开位于add on resource(数据目录)中的.html文件吗?

时间:2014-03-20 09:30:48

标签: firefox-addon-sdk

我想要一个类似于'结果页面'对于一个附加组件,一个自己的加载项页面将打开并显示注释和其他结果。理想情况下,我会使用位于附加组件的.html目录中的data文件。

window模块是否提供了打开扩展程序自己文件的功能?

1 个答案:

答案 0 :(得分:4)

通常你会想要打开一个新标签,而不是一个窗口。打开data目录中的页面没有问题,您只需使用self.data.url()返回的网址:

var tabs = require("sdk/tabs");
var self = require("sdk/self");
tabs.open({
  url: self.data.url("result-page.html"),
  inBackground: false,  // This can also be: inNewWindow: true
});

但是,此页面没有任何特殊权限。特别是,它无法访问您的附加组件数据,因此无法与您的插件交换消息。为此,您需要将内容脚本注入新打开的选项卡:

tabs.open({
  url: self.data.url("result-page.html"),
  inBackground: false,
  onReady: function(tab)
  {
    tab.attach({
      contentScriptFile: self.data.url("result-page.js"),
      onMessage: function(message)
      {
        // Message from content script, send a response?
      }
    });
  }
});

请参阅tab.attach()Communicating with content scripts