我想创建一个非常简单的测试插件,它可以做一件事:从main.js打开一个html页面(位于数据文件夹中),然后传递它一些生成的它可以显示的JSON。我已经想出了一个非常复杂的方法来使用消息传递和克隆unsafeWindow.options来实现这一点,但是必须有一个更简单的方法吗?从main.js打开页面,并将数据传递给它
ps。我很高兴地使用“插件页”模块,如果这是这样做的正确方法...
我想创建一个非常简单的测试插件,它可以做一件事:从main.js打开一个html页面(位于数据文件夹中),然后传递它一些生成的它可以显示的JSON。我已经想出了一个非常复杂的方法来使用消息传递和克隆unsafeWindow.options来实现这一点,但是必须有一个更简单的方法吗?从main.js打开页面,并将数据传递给它
ps。我很高兴地使用“插件页”模块,如果这是这样做的正确方法...
打开一个标签一个简单的模板,然后在选项卡已准备就绪,附加内容的脚本,通过一些参数,和建立消息处理程序:
在附加模块:
var resourceURL=require("sdk/self").data.url;
require("sdk/tabs").open({
url:resourceURL("index.html"),
onReady:function(tab){
var worker=tab.attach({
contentScriptFile:["support.js","content.js"].map(resourceURL),
contentScriptOptions:{}, //parameters passed to content script
});
worker.port.on("ready",function(msgIn){
worker.port.emit("acknowledge",msgOut);
});
}
});
而在内容脚本;要发送“准备就绪”的消息,并收到“确认”消息:
self.port.on("acknowledge",function(msgIn){});
self.port.emit("ready",msgOut);
有可能是这样的,相对路径是允许无需需要更改的参数url
和/或contentScriptFile
,处理( “SDK /自”)。data.url。不确定这只是推测/建议还是目前正在实施;没有检查。
而且我觉得addon-page
折旧和自升级到芦苇UI(即导航栏不再隐藏特殊的URI像约:插件)没有奏效。
您可以使用端口在这样的另一种观点发送数据:
为主。 JS
// Create a menu panel
var menu = panels.Panel({
contentURL: data.url("menu.html"),
contentScriptFile: data.url("menu.js"),
});
// Your data
var data = {animal: 'panda'};
menu.port.emit('data', JSON.stringify(data));
menu.js
self.port.on('data', function onReceiveData(data) {
console.log(data);
});
你是一个大复印机! – EpokK 2014-10-30 09:08:42
@EpokK我不知道你在说什么。你从哪里指责我或从谁那里抄袭?我只是看了一些我的旧代码的指导(旧的,因为它很久以前我就这样)。 – jongo45 2014-10-30 09:16:54