gpt4 book ai didi

firefox - 在我的 firefox 扩展中,onUninstalled 事件似乎没有触发

转载 作者:行者123 更新时间:2023-12-03 22:01:17 25 4
gpt4 key购买 nike

Firefox 4 公开了一些事件来检测用户何时卸载扩展。我可以得到onUninstalling触发(当用户单击以删除扩展程序时),但是当 onUninstalled 时我无法发生任何事情火灾(应该在重新启动后发生)。

Components.utils.import("resource://gre/modules/AddonManager.jsm");
AddonManager.addAddonListener({
onUninstalled: function(addon){
//does not work
alert("uninstalled!");
},
onUninstalling: function(addon){
//works as expected
alert("uninstalling!");
}
});

我最终希望在用户卸载我的扩展程序后显示一个页面。如果可以的话,我更愿意在 onUninstalled 之后执行此操作。

最佳答案

方法onUninstalled在删除扩展程序后调用 - 因此您的扩展程序可能无法接收其自己的卸载事件,它不再能够接收它。您可以收到有关其他加载项正在卸载的通知,但这就是此事件的重点。查看源代码,似乎有一个额外的问题 - 此通知仅发送给不需要重新启动的附加组件。这是有道理的,因为重新启动可以从根本上改变情况,因为外部应用程序在扩展目录中添加或删除了附加组件。因此,Firefox 甚至不会尝试传达未运行时发生的更改,任何监听器都应该在每次浏览器启动时重新阅读加载项列表。

综上所述,作为一个“经典”的扩展,你必须使用 onUninstalling即使此事件不保证将卸载扩展程序(用户仍然可以恢复他的选择)。引导扩展(不需要重启的扩展,见 https://developer.mozilla.org/en/Extensions/Bootstrapped_extensions)更容易,方法 uninstall()即使扩展被禁用,他们的 bootstrap.js 也会被调用。然而,把你的扩展变成一个自举扩展并不总是那么容易,有很多问题可以解决:http://adblockplus.org/blog/how-many-hacks-does-it-take-to-make-your-extension-install-without-a-restart

关于firefox - 在我的 firefox 扩展中,onUninstalled 事件似乎没有触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6284051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com