我想要一个类似于'结果页面'对于一个附加组件,一个自己的加载项页面将打开并显示注释和其他结果。理想情况下,我会使用位于附加组件的.html
目录中的data
文件。
window
模块是否提供了打开扩展程序自己文件的功能?
答案 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?
}
});
}
});