我正在尝试通过端口从我的main.js发送消息到我的面板的内容脚本。我已经尝试了许多没有运气的东西,但是从内容脚本向main.js发送消息非常有效。
这是我的main.js的样子:
var data = require("self").data;
var setting = require("panel").Panel({
width: 250,
height: 130,
contentURL: data.url("www.google.com"),
contentScriptFile: data.url("script.js")
});
require("widget").Widget({
id: "sorter1",
label: "Search Result Sorting",
contentURL: data.url("icon.ico"),
panel: setting
});
setting.port.emit("message");
这是我的内容脚本:
self.on("message", function(addonMessage) {
document.innerHTML = "Got Message"
});
答案 0 :(得分:1)
我几天前想到了这个问题,只是没有时间在这里发帖。
使用面板时要记住的一些事项:
这就是我实施它的方式
在main.js
中panel.on("show", function() {
panel.port.emit("message");
});
在面板内容脚本中
self.port.on("message", function() {
//doThings
});
port.emit()不需要第二个参数,但第二个参数是将传递给
的内容脚本的内容function(secondArg) {
}
答案 1 :(得分:0)
[更新]抱歉,我没有完全阅读该代码。
首先,您实际上需要向面板发送消息,例如
setting.port.emit('message', someData);
第二部分:我想你想要:
self.port.on("message", function(addonMessage) {
document.innerHTML = "Got Message"
});
相关文档在这里: