Javascript FireFox SDK插件-“FireFox SDK插件”;“分离内容脚本”;启用禁用/卸载?

Javascript FireFox SDK插件-“FireFox SDK插件”;“分离内容脚本”;启用禁用/卸载?,javascript,firefox,firefox-addon,firefox-addon-sdk,Javascript,Firefox,Firefox Addon,Firefox Addon Sdk,当插件被禁用和卸载时,我在试图找出如何处理分离事件时遇到了一些问题 在main.js和我的内容脚本中,我捕获了在这两种情况下触发的“detach”事件,但内容脚本实际上并没有从选项卡中删除。结果,我的监听器和观察器在插件被禁用后继续启动 我的理解是,destroy() 在处理分离事件时,我可以删除侦听器和观察者,但我的理解是,内容脚本在分离过程中被删除,所以侦听器应该被删除 我还想从DOM中删除内容脚本,但如果执行以下操作,则不会列出内容脚本: var scripts = document.ge

当插件被禁用和卸载时,我在试图找出如何处理分离事件时遇到了一些问题

main.js
和我的内容脚本中,我捕获了在这两种情况下触发的“detach”事件,但内容脚本实际上并没有从选项卡中删除。结果,我的监听器和观察器在插件被禁用后继续启动

我的理解是,
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");
    }
}
var scripts=document.getElementsByTagName(“脚本”);
对于(i=0;i
我的理解是destroy()被激发,这应该会移除
内容脚本,但如果我查看dev工具中的调试器,脚本
在我禁用后仍然列出

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

这是一个很好的问题

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

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

根据文档:
destroy()
“通过从页面中删除内容脚本并删除所有注册的侦听器来销毁工作程序。在删除之前会触发分离事件。”