检测是否安装了 Chrome 扩展程序
Detect if a Chrome extension is installed
我想检测用户的浏览器中是否安装了Chrome扩展程序。如果没有,我想显示一个链接来安装扩展。如果已经安装了,我想隐藏链接。
这似乎是一个可能的解决方案,但我some_object_to_send_on_connect应该是什么感到困惑?https://developer.chrome.com/extensions/extension#global-events
var myPort=chrome.extension.connect('jllpkdkcdjndhggodimiphkghogcpida', some_object_to_send_on_connect);
我知道
这是一个老问题,但由于我设法解决了这个问题(出于我的需求),我想分享一下。
我通过在 DOM 中添加一些信息来实现这一点。在扩展名的content.js
文件中,我有:
document.documentElement.setAttribute('extension-installed', true);
在我的页面中:
var isInstalled = document.documentElement.getAttribute('extension-installed');
if (isInstalled) {
...
}
我不确定您是要从网页还是从已安装的扩展程序进行检查。
从网页
你不能。 只有Chrome网上应用店可以检查这一点。
但是,如果您编写扩展和网页,则可以使扩展在页面中执行一些内容脚本,以确认其已安装并正常工作。
从扩展
只要您知道要查找的扩展程序的 ID,您就可以使用
chrome.management.get(id, callback);
您可以使用chrome.management.getAll()获取已安装扩展的列表,其中包含比其ID更多的信息。
https://developer.chrome.com/extensions/management
假设您是扩展的作者,则可以在extension.js
文件中包含一个自定义事件,并且在您的站点中,您可以addEventListener
该事件。
在扩展中:
const customEvent = new CustomEvent('myExtensionCheckEvent', {
detail: true // whatever value you enter here will be passed in the event
})
document.dispatchEvent(customEvent)
和你的网站 JavaScript 文件:
document.addEventListener('myExtensionCheckEvent', e => {
if (e.detail) {
// the extension is installed
}
})
请注意,必须调用密钥detail
。
相关文章:
- 在这个使用hasOwnProperty的对象扩展程序中有一个错误,I'我不确定那个bug是什么,也不确定这个扩展
- Google Chrome扩展程序可以检测所有脚本何时加载完成吗
- jQuery$.ajax扩展程序XDomainRequest
- 为什么不'我的扩展程序不会出现在Chrome网上商店的搜索结果中
- Chrome扩展程序将所有链接替换为略微修改的版本
- 在 Chrome 扩展程序中创建自定义事件的最惯用方式
- Chrome APP/扩展程序从网址下载文件
- 列出谷歌浏览器中安装的所有扩展程序
- 使用多功能框在 chrome 扩展程序中包含内联自动填充功能的任何方法
- 浏览器扩展程序来跟踪我的谷歌活动
- Chrome 扩展程序在后台与页面(不在标签页中)交互
- 无法获取标签页网址 - Chrome 扩展程序
- 谷歌浏览器扩展程序画布图标
- Chrome 扩展程序复制和粘贴
- 在新标签页打开时触发 Chrome 扩展程序
- 为什么我的谷歌浏览器扩展程序在谷歌浏览器版本 41.0.2272.89 中不起作用
- 在Chrome扩展程序中,是否可以截屏并在弹出窗口中显示屏幕
- 如何从 Chrome 扩展程序中的内容脚本中获取变量
- 尝试从我的 chrome 扩展程序访问 gmail 中的 iframe 时出现未定义的错误,但不是从开发者控制台访问
- 在 Chrome 扩展程序中通过发布请求发送网址加载