检测用户是否安装了我的Chrome扩展
Detect if user have my Chrome extension installed?
我开始开发一个非常酷的Chrome扩展,但遇到了一个小问题。
我想允许我的用户共享链接。通过共享此链接,其他用户可以通过我的扩展获得一些信息。
问题是,当用户点击共享链接时,我想检查他的浏览器上是否安装了我的Chrome扩展。如果是这样的话——太好了,否则——我想重定向他下载我的扩展。
有什么办法吗?
一种可能性是让您的扩展在所有网站上运行一个内容脚本*,并为document
上的点击事件添加一个监听器。它会检查event.target
,以确保它是一个链接并有一个特定的前缀,如果有,它会调用其参数的preventDefault
方法并执行它的任务。对于没有扩展的用户来说,该链接当然可以像其他链接一样工作。
*这会导致Chrome在潜在用户安装您的扩展时警告他们这一点;有关详细信息,请参阅权限警告。
让扩展在它加载的每个页面的DOM中添加一个不可见的元素,并用一个唯一的ID标记它。当用户单击该链接时,运行一些javascript来检查该元素——如果它不存在,那么你就知道扩展还没有安装。
我认为您应该能够设置/修改HTTP请求中的标头(从Chrome 17开始?)。向请求添加头意味着您可以检测到服务器端是否存在扩展。
这是相当不直观的。许多扩展/插件在历史上都修改过用户代理标头。
相关文章:
- 清单文件中的update_url禁用了我的chrome扩展
- 尝试从我的 chrome 扩展程序访问 gmail 中的 iframe 时出现未定义的错误,但不是从开发者控制台访问
- 如何在我的Chrome扩展中包含外部对象
- 如何在我的chrome扩展中授权用户
- 如何检查我的 chrome 扩展程序的 if 语句中的单词列表
- 在我的 chrome 网上商店应用程序中禁用检查元素/JavaScript 控制台
- 如何使我的Chrome扩展只注入一次脚本
- 如何使用javascript在我的chrome扩展中获取当前选项卡的URL
- 当我移动到另一个选项卡时,如何停止我的Chrome扩展
- 我可以从我的Chrome扩展中获得可用的区域设置翻译列表吗
- I'我试图让jquery在我的chrome扩展的background.js中工作,结果成功了;不起作用.为什么?
- 有没有一种方法可以为我的Chrome扩展唯一标识内容脚本运行的iframe
- 检测用户是否安装了我的Chrome扩展
- 如何从我的Chrome扩展中获取变量'的背景脚本
- 是否可以从我的Chrome扩展在窗口中显示网页,只使用JS、HTML和CSS
- 我能判断我的Chrome扩展是否在Windows上运行吗
- 窗口.Setinterval是't工作与我的chrome扩展
- 只允许请求从我的chrome扩展
- 我的chrome扩展将不会加载,直到我重新加载/刷新相同的YouTube视频页面再次
- 为什么我的chrome扩展脚本不在网页上工作