我想构建一个Firefox扩展,在用户点击后,会动态构建一个网页并在新标签页中打开。
在“tab”API中,我只看到tab.open()打开一个指向远程网站的超链接。我可以构造一个包含所有HTML内容的JavaScript变量(如var page =“blahblah ....”)并打开它吗?怎么做?
答案 0 :(得分:1)
您不必动态构建它,只需在您的插件中放置一个htm页面,然后指向它的链接将是资源://您的插件ID / blah.htm。这个插件在这里创建了一个页面:addons.mozilla.org/en-US/firefox/addon/twitch-alarm
您还可以为您的页面创建一个about:blah url,这显示了如何在没有sdk的情况下执行此操作:github.com/Noitidart/ZooniverseXpert
答案 1 :(得分:1)
您不必动态创建html页面,而是在您的插件中放置一个html页面,并在打开标签页时引用它。
tabs.open({
url : self.data.url("js/error.html"),
onReady : function(tab) {
var errorWorker = tab.attach({
contentScriptFile : self.data.url("js/error.js")
});
errorWorker.port.emit("error_page",message);
}
});
这里我显示一个错误页面,它存储在我的插件中并附加一个内容脚本文件,通过main.js和错误页面之间的消息传递来动态更改html页面的内容。 希望它对你有用。