删除chrome扩展程序后,从网站

时间:2016-03-24 10:03:17

标签: google-chrome-extension

您好我是chrome扩展程序的新手。我已经构建了基本的chrome扩展,我想使用内联安装来安装它。我按照以下链接:

https://developer.chrome.com/webstore/inline_installation#already-installed

一切正常。我想检查扩展是否已经安装,所以我参考了上述文档,每当用户安装扩展时,我们将使用内容脚本将新div附加到网站上的安装页面。如果该div存在,则表示已经安装了扩展名。

以下代码添加到chrome扩展程序的content_script中,以便在安装扩展程序时附加div:

var isInstalledNode = document.createElement('div');
isInstalledNode.id = 'extension-is-installed';
document.body.appendChild(isInstalledNode);

然后我的安装页面可以检查是否存在该DOM节点,这表示该扩展已经安装:

if (document.getElementById('extension-is-installed')) {
  document.getElementById('install-button').style.display = 'none';
}

但我面临一个问题,每当我从设置/扩展程序中删除我的扩展程序时,扩展程序的安装页面上仍然存在div。

当我的扩展程序被删除或从浏览器中删除时,他们是否有任何删除div的条款?

1 个答案:

答案 0 :(得分:0)

您无法捕获自己的扩展程序的卸载事件,但有management.onUninstalled,它用于侦听其他扩展程序/应用程序。有关详细信息,请参阅以下答案 How to listen to uninstallation event in javascript from a chrome extension?

我只想出了两个解决方法,一个是创建另一个扩展来听取第一个扩展的卸载;另一个是在卸载时使用runtime.setUninstallURL访问URL,如果需要,可以在服务器中执行某些操作。

BTW,对于isInstalledNode,你不需要/不应该设置id,因为网页中可能有其他元素具有相同的id,你只需要创建节点并使用{{1检查它是否存在。