附加脚本与我的firefox附加组件中打包的页面之间的通信

时间:2013-12-21 01:41:04

标签: firefox firefox-addon firefox-addon-sdk

我正在为firefox开发一个附加组件。我正在使用新的SDK来做到这一点。我真正了解端口以及附加脚本和内容脚本之间的通信。我的附加组件执行一些处理,然后得出一些结果。我试图在一个新的选项卡中向用户呈现这些结果,其中html / css / js与add本身打包在一起。我不确定如何将结果传达给页面。

由于

PS:我可以通过面板轻松做到这一点,但我不知道如何使用新标签

2 个答案:

答案 0 :(得分:1)

好的,我想出了怎么做。我想我应该在这里写下答案,以防其他人遇到同样的问题!

诀窍是打开一个包含页面的新选项卡,在“ready”事件中,您附加ContentScript或ContentScriptFile。 attach()方法返回一个worker,您可以使用该worker在附加脚本和ContentScript之间来回通信。可能有一种更有效的方法可以做到这一点,但我觉得这对我没有任何问题。

function attachContentScript(){
    var worker = tabs.activeTab.attach({
        ContentScriptFile: self.data.url("myContentScript.js")
    });
    //Now you can commmunicate using worker and the content script
    //using port    
}
tabs.open(self.data.url("myPage.html"));
tabs.on("ready", attachContentScript)

答案 1 :(得分:-1)

var self = require("sdk/self");
url= self.data.url("yourpage.html");
var tabs = require("sdk/tabs");
tabs.open(url);

Page on SDK documentation