如何在Firefox和Chrome中检查插件是否已安装

9
我正在使用一个嵌入式插件在我的web应用程序中启用扫描(Dynamsoft的webscanning插件)。我向Firefox用户提供xpi,向Chrome用户提供crx。当没有安装插件时查看页面时,Firefox会尝试下载插件,用户需要点击“手动安装”才能安装它。Chrome将不会尝试下载插件(根据http://code.google.com/p/chromium/issues/detail?id=15745的设计)

我想使用javascript来检测插件是否已安装(最好在通过嵌入标记加载之前进行检测)。如果没有安装插件,我希望向用户提供说明和正确插件的链接。两个浏览器都可以在用户点击下载链接而不是只是尝试通过嵌入标记加载时安装其各自的插件。

那么,有人知道使用javascript检测插件是否已安装的方法吗?

3个回答

11

太棒了!我会稍微试一下,但它绝对是我在寻找的东西。谢谢!!! - Jens Alm
我们有一个获胜者。运行得非常好!谢谢! - Jens Alm
Jens,这个在webkit中对你有用吗?russau提供的关于webkit插件的链接有点问题(重定向到新页面)或者不是很清晰。 - knocte
@knocte 是的,苹果链接已经消失了。更新了答案,并提供一个在Chrome/Safari中可用的jsfiddle链接。 - russau

-1
听起来像是一个潜在的安全漏洞,如果一个网站(远程的东西)可以访问你的插件(本地的东西)。所以我猜这是不可能的。

2
可能是这样,但我实际上不需要访问插件,只需要知道它是否存在。 - Jens Alm
2
这可能是一个“隐私漏洞”,因为它可以用于指纹识别您的浏览器。在此处查看演示:https://panopticlick.eff.org/ - russau

-1

你的插件可以监控用户打开了哪些页面。如果是你的页面,你可以让你的插件在该页面中设置一个全局变量,你的页面的JavaScript应该能够检测到这个变量。


很不幸,这不是我的插件。不过我可以与插件的制作者联系,看看他们是否设置了一些变量,我可以进行检查。最好是在嵌入插件之前先检查插件,以避免在没有警告用户的情况下提示安装。 - Jens Alm
@Jens Alm:我明白了。根据“插件”的类型,@russau的回答可能会有所帮助。 - Felix Kling

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接