firefox插件中是否有一些内容可以通过单击左侧的x按钮来注册一个回调,这个回调会在关闭插件时被调用?
我需要的是,当用户使用x按钮关闭插件栏时,应该通知我在该栏上加载的扩展程序。现在发生的事情是,即使用户关闭插件栏,它也不会被关闭;相反,它只是隐藏。
如果我们可以通过回调通知用户点击了x按钮,那么我可以在分机中收听。
答案 0 :(得分:0)
是的,先生,绝对是:MutationObserver。
将其粘贴到Browser envirnoment中的暂存器文件中,然后当插件栏关闭并打开时,您将看到一条消息。
// select the target node
var win = Services.wm.getMostRecentWindow('navigator:browser');
var target = win.document.querySelector('#addon-bar');
// create an observer instance
var observer = new win.MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.attributeName == 'collapsed') {
Services.prompt.alert(null,'title','addon bar toggled it WAS = ' + mutation.oldValue);
}
});
});
// configuration of the observer:
var config = { attributes:true, attributeOldValue:true };
// pass in the target node, as well as the observer options
observer.observe(target, config);
// later, you can stop observing
//observer.disconnect();
答案 1 :(得分:0)
最简单的方法是将command
处理程序附加到相关按钮。如果您的代码在浏览器窗口内运行,则会执行以下操作:
var closeButton = document.getElementById("addonbar-closebutton");
closeButton.addEventListener("command", function(event) {
// Add-on bar is being closed, do something
}, false);
请注意,当从Firefox中删除附加栏时,此代码很快就会停止工作。