Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关闭Firefox加载项中iframe的面板_Javascript_Firefox_Firefox Addon_Firefox Addon Sdk - Fatal编程技术网

Javascript 关闭Firefox加载项中iframe的面板

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

我正在使用插件SDK创建一个Firefox扩展,它打开一个包含当前页面信息的iframe。在对iframe执行一些操作之后,我需要关闭Panel对象,但我不知道如何通过管道传递此消息。有什么想法吗?在Chrome中,我只需关闭窗口,分机就会关闭


代码:

恐怕您必须创建一个内容脚本,当您想要关闭面板时,该脚本将注册一个要调用的侦听器。内容脚本应通过
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文档,在这里详细解释了所有这些。请参阅更新答案中的新链接。