【问题标题】:How do I check in Firefox and Chrome if a plugin is installed如果安装了插件,如何签入 Firefox 和 Chrome
【发布时间】:2011-01-08 22:06:04
【问题描述】:

我在我的网络应用程序中使用嵌入式插件来启用扫描(Dynamsoft 的网络扫描插件)。我为 Firefox 用户提供 xpi,为 chrome 用户提供 crx。查看未安装插件的页面时,Firefox 会尝试下载插件,用户需要点击“手动安装”进行安装。 Chrome 不会尝试下载插件(这是设计使然,根据http://code.google.com/p/chromium/issues/detail?id=15745

我想使用 javascript 来检测是否安装了插件(最好在尝试通过 embed 标签加载它之前)。如果没有安装插件,我想向用户提供解释和正确插件的链接。如果用户点击下载链接而不是仅仅尝试通过 embed 标签加载,这两个浏览器都可以毫无问题地安装各自的插件。

那么,有没有人知道一种方法可以检测是否使用 javascript 安装了插件?

【问题讨论】:

    标签: javascript firefox plugins google-chrome


    【解决方案1】:

    你看过window.navigator.plugins吗?

    ..以及 webkit plugins-

    的等效参考

    Apple 对 WebKit DOM 的引用似乎已经消失。 navigator.plugins 在 Safari 和 Chrome 中对我有用。在此处查看 jsfiddle:http://jsfiddle.net/2EaKD/

    【讨论】:

    • 太棒了!我会玩一点,但它绝对是我想要的。谢谢!!!
    • 我们有一个赢家。奇迹般有效!谢谢!
    • Jens,这在 webkit 中对你有用吗?,russau 到 webkit 插件的链接有点损坏(重定向到新页面)或不太清楚
    • @knocte 是的,苹果链接消失了。用在 Chrome/Safari 中工作的 jsfiddle 的链接更新了答案
    【解决方案2】:

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

    【讨论】:

    • 可能是,但我实际上不需要访问插件,只知道它是否存在。
    • 是不是有点“隐私漏洞”,因为它可以用来对您的浏览器进行指纹识别。在此处查看演示:panopticlick.eff.org
    【解决方案3】:

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

    【讨论】:

    • 不幸的是,这不是我的插件,尽管我可以与插件的制造商核实是否设置了我可以检查的 som 变量。最好在尝试嵌入插件之前检查插件,以避免在不警告用户的情况下提示安装。
    • @Jens Alm:我明白了。根据“插件”的类型,@russau 的回答可能会有所帮助。
    猜你喜欢
    • 2014-01-15
    • 2020-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-25
    • 1970-01-01
    • 2020-02-26
    • 1970-01-01
    相关资源
    最近更新 更多