我试图使用纯JavaScript检测限制我们网站功能的某些插件(例如Ghostery或DoNotTrackMe)的存在。如果Firefox有一个标准API来查询插件的存在,它会使我的工作短路。可能类似于:
AddonManager getAddonByID('&#39)。
可以检测插件,例如Java和Flash(navigator.plugins
),但不能用于插件。
也可以检测插件的if you are the developer。
答案 0 :(得分:5)
不,没有这样的API而且没有。如果浏览器允许网站检测安装了哪些扩展,那么这是一个错误和隐私问题 - Firefox和Chrome过去修复了这些问题,目前没有这样的问题存在。为什么网页不应该知道这一点:
navigator.plugins
功能当然分享了许多相同的问题 - 它是在互联网的黑暗时代引入的,当时没有人考虑过这样的问题。这就是为什么正在积极讨论此功能的原因,并且将来可能会受到限制。
当然,网站当然仍然可以尝试通过其效果来检测扩展。但是,这不是一种非常可靠的方法,例如,您链接到的Adblock检测器表示"未检测到广告屏蔽"对我而言显然是错误的。
奖励信息:Google Chrome确实提供了已安装扩展程序的列表,但仅提供给一个网站:Chrome网上应用店。 Web Store使用它来指示您已安装的扩展。它是否可以用这些数据做任何事情,你的猜测和我的一样好。
答案 1 :(得分:0)
您可以在FF,IE,Chrome中检测 AdBlock
您可以在FF,IE,Chrome和其他
中检测 FlashBlock您可以在Chrome中检测 Ghostery
请注意,这些脚本使用推理来检测这些插件的存在,但没有API。我还没有找到其他插件的探测器,但它们可能存在......(正在进行中)