我正在尝试加载一个HTML面板/弹出窗口,用作我的扩展程序的菜单。
我成功地使用(或多或少)加载了它:
var ifr = document.createElement("iframe");
ifr.setAttribute("type", "chrome");
ifr.setAttribute("style", "width: 200px; height: 300px;");
ifr.setAttribute("src", url);
IROB_MENU.mnu.appendChild(ifr);
IROB_MENU.mnu.openPopup(navbar, "before_end", 0, 0, false, false);
现在我找不到一种与之通信的方法,由于某种原因postMessage无法正常工作。
我在某处读到,如果您打开面板,则可以为其分配消息处理程序,并可以使用端口进行通信,因此我尝试了以下操作:
var MeteoPanel = require("panel").Panel({
width: 320,
height: 170,
contentScriptFile: self.data.url('panel.js'),
contentScriptWhen: "ready",
contentScript: "SOMESCRIPT",
contentURL: self.data.url('thecontent.html'),
onMessage: function (item) {
console.log('message : "' + item + '"');
}
});
但是我收到一条错误消息,说'require'未定义:|
有任何想法吗?
非常感谢!
最佳答案
您可能需要下载附加SDK。您可以在此处找到有关安装的说明:
https://developer.mozilla.org/en-US/Add-ons/SDK/Tutorials/Installation