您好我是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的条款?
答案 0 :(得分:0)
您无法捕获自己的扩展程序的卸载事件,但有management.onUninstalled,它用于侦听其他扩展程序/应用程序。有关详细信息,请参阅以下答案 How to listen to uninstallation event in javascript from a chrome extension?
我只想出了两个解决方法,一个是创建另一个扩展来听取第一个扩展的卸载;另一个是在卸载时使用runtime.setUninstallURL访问URL,如果需要,可以在服务器中执行某些操作。
BTW,对于isInstalledNode
,你不需要/不应该设置id,因为网页中可能有其他元素具有相同的id,你只需要创建节点并使用{{1检查它是否存在。