我正在创建一个带有插件SDK的Firefox扩展程序,该插件可以打开包含当前页面信息的iframe。在对iframe执行一些操作后,我需要关闭Panel对象,但我不知道如何管道此消息。有任何想法吗?在Chrome中,我只能关闭窗口,扩展程序就会关闭。
代码:https://github.com/kippt/kippt-firefox/blob/master/lib/main.js
答案 0 :(得分:2)
我担心您必须创建一个内容脚本,该脚本会在您要关闭面板时注册要调用的侦听器。内容脚本应通过self.port.emit('your-event-name')
与插件进行通信,附加代码应通过panel.port.on('your-event-name')
监听通知以关闭面板:
var kipptPanel = require("panel").Panel({
width:400,
height:245,
// The contentURL should do this to close the panel:
// <button id="close-button">self.port.emit('close', null)</button>
contentURL : "http://localhost:8000/test-panel.html",
contentScript: "document.getElementById('close-button').addEventListener('click', function() {" +
" console.log('zz');self.port.emit('close', null);" +
"});"
});
kipptPanel.port.on("close", function (text) {
console.log(text);
kipptPanel.destroy();
});
kipptPanel.show();
这是modified version of your code in the add-on builder。
对此进行了描述我意识到这太复杂了,你可能想在jetpack小组中询问是否已经考虑了window.close()
关闭小组。