FireFox SDK 插件 - 禁用/卸载时的“分离内容脚本”

FireFox SDK Addon - "Detach content script" on disable/unload?

本文关键字:分离 脚本 插件 SDK 禁用 卸载 FireFox      更新时间:2023-09-26

我在尝试弄清楚禁用和卸载插件时如何处理分离事件时遇到了一些问题。

main.js和我的内容脚本中,我正在捕获在两种情况下都会触发的"分离"事件,但内容脚本实际上并未从选项卡中删除。结果,我的听众和观察者在插件被禁用后继续触发。

我的理解是destroy()被触发,这应该删除内容脚本,但是如果我在开发工具中查看调试器,则在禁用后脚本仍然会列出。

我可以在处理分离事件时删除侦听器和观察器,但我的理解是内容脚本在分离期间被删除,所以侦听器应该被删除吗?

我还想只是从 DOM 中删除内容脚本,但如果您执行以下操作,则不会列出内容脚本:

var scripts = document.getElementsByTagName("script");
for (i=0;i<scripts.length;i++){
    if(scripts[i].src == "content-script.js"){
        console.log("content script found");
    }
}

执行分离时,是否需要再次调用某些内容以使其知道您已完成清理?每当我在main.js或内容脚本中捕获分离事件时,它都会在使用 cfx ?这就是它没有完成删除的原因吗?

我的理解是 destroy() 被触发,这应该删除 内容脚本,但如果我在开发工具中查看调试器,脚本 在我禁用后仍然列出。

我可以在处理分离时删除侦听器和观察器 事件,但我的理解是内容脚本被删除 在分离过程中,侦听器,应该被删除吗?

这是一个非常好的问题。

分离事件是事件旨在让您知道是时候清理内容脚本了。 事件侦听器需要删除,添加到窗口范围的任何内容也应该删除,

您无需让main.js脚本知道何时完成。