Javascript 关闭Firefox加载项中iframe的面板
我正在使用插件SDK创建一个Firefox扩展,它打开一个包含当前页面信息的iframe。在对iframe执行一些操作之后,我需要关闭Panel对象,但我不知道如何通过管道传递此消息。有什么想法吗?在Chrome中,我只需关闭窗口,分机就会关闭Javascript 关闭Firefox加载项中iframe的面板,javascript,firefox,firefox-addon,firefox-addon-sdk,Javascript,Firefox,Firefox Addon,Firefox Addon Sdk,我正在使用插件SDK创建一个Firefox扩展,它打开一个包含当前页面信息的iframe。在对iframe执行一些操作之后,我需要关闭Panel对象,但我不知道如何通过管道传递此消息。有什么想法吗?在Chrome中,我只需关闭窗口,分机就会关闭 代码:恐怕您必须创建一个内容脚本,当您想要关闭面板时,该脚本将注册一个要调用的侦听器。内容脚本应通过self.port.emit('your-event-name')与加载项通信,加载项代码应通过panel.port.on('your-event-nam
代码:恐怕您必须创建一个内容脚本,当您想要关闭面板时,该脚本将注册一个要调用的侦听器。内容脚本应通过
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();
var kipptPanel=require(“面板”).panel({
宽度:400,
身高:245,
//contentURL应执行以下操作以关闭面板:
//self.port.emit('close',null)
内容URL:“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(“关闭”,函数(文本){
console.log(文本);
kipptPanel.destroy();
});
kipptPanel.show();
这是一个例子
这将在第页进行描述
我意识到这太复杂了,您可能想在jetpack组中询问是否考虑过制作
window.close()
close面板。我不确定在选项卡关闭时关闭面板是否有任何意义。该面板是浏览器chrome的一部分,未附加到任何给定的选项卡。@canuckistani:我分析问题中该句的方式是:在面板中打开的文档中调用window.close()
,面板将关闭(在chrome中)。这对我来说很有意义。太棒了,这是我一直在寻找的东西。非常感谢@乔德:很乐意帮忙。不知怎的,我忘了链接SDK文档,在这里详细解释了所有这些。请参阅更新答案中的新链接。