检测用户是否安装了我的Chrome扩展程序?

时间:2012-02-09 07:26:16

标签: javascript google-chrome-extension

我开始研究一个非常酷的Chrome扩展程序,但我遇到了一个小问题。

我想允许我的用户分享链接。通过共享此链接,其他用户可以通过我的扩展程序获取一些信息。

问题是,当用户点击共享链接时,我想检查我的Chrome浏览器是否安装了Chrome扩展程序。如果确实如此 - 很棒,否则 - 我想重定向他下载我的扩展程序。

任何想法如何?

3 个答案:

答案 0 :(得分:1)

一种可能性是让您的扩展程序在所有网站上运行内容脚本*,并为document上的点击事件添加一个侦听器。它会检查event.target以确保它是一个链接并具有特定的前缀,如果是,它将调用其参数的preventDefault方法并执行其操作。对于没有您的扩展程序的用户,该链接当然可以像其他任何一样工作。

*这会导致Chrome在安装您的扩展程序时向潜在用户发出警告;阅读Permission Warnings了解更多信息。

答案 1 :(得分:0)

使扩展程序向其加载的每个页面的DOM添加一个不可见元素,并使用唯一ID标记它。当用户点击该链接时,运行一些javascript来检查该元素 - 如果它不存在,那么您就知道该扩展程序尚未安装。

答案 2 :(得分:0)

我认为您应该能够在HTTP请求中设置/修改标头(从Chrome 17开始?)。向请求添加标头意味着您可以检测服务器端是否存在扩展名。

这是相当不引人注目的。许多扩展/插件历来修改了User-Agent标头。