【问题标题】:Detecting installed plugins under different browsers?检测不同浏览器下安装的插件?
【发布时间】:2011-03-04 02:07:06
【问题描述】:

我想知道是否有办法检测不同浏览器上已安装的插件。 到目前为止,我发现您可以通过尝试猜测 chrome://path/to/some/plugin/image.gif 是否存在来“检测”Firefox 上的插件。

Firefox 的这段代码如下所示:

<img src="chrome://firebug/content/blank.gif" onload="var a=document.getElementById('FireBug'); a.innerHTML = 'You are using FireBug';" style="visibility:hidden">
<div id="FireBug">You are not using FireBug</div>

我很感兴趣代码在 IE 中的外观(对我来说更重要)以及是否还有其他方法可以为其他浏览器完成此任务?

我想知道,因为我有一个白痴客户声称他没有安装插件,尽管我 99.99% 确定他有。问题是其中一些插件破坏了我编写的网站管理控制面板的一部分。

无论如何,我很高兴听到任何提示、技巧、解决方法等获取流行浏览器的插件列表(ff、ie、opera、chrome、safari):)

【问题讨论】:

    标签: javascript browser plugins


    【解决方案1】:

    此代码将列出浏览器中安装的所有插件

    <html>
    <body>
    <div id="example"></div>
    <script type="text/javascript">
    var x=navigator.plugins.length; // store the total no of plugin stored 
    var txt="Total plugin installed: "+x+"<br/>";
    txt+="Available plugins are->"+"<br/>";
    for(var i=0;i<x;i++)
    {
      txt+=navigator.plugins[i].name + "<br/>"; 
    }
    document.getElementById("example").innerHTML=txt;
    </script>
    </body>
    </html>
    

    【讨论】:

    • 很抱歉花了这么长时间才接受这个答案。当时这不是一个标准,它只适用于 Firefox 和/或 Chrome。这现在似乎得到了广泛的支持,所以我会接受你的回答。 :)
    • 不列出用户安装的插件。
    • 这是否适用于移动设备,尤其适用于运行 safari 的基于 iOS 的设备?
    • 我还没有在移动设备上测试过它,但我认为它可能只是工作,你可以尝试告诉我们。
    • navigator.plugins 现已弃用,您知道有哪些替代方案吗?参考:developer.mozilla.org/en-US/docs/Web/API/Navigator/plugins
    【解决方案2】:

    你可以试试这个:http://www.sliceratwork.com/detect-installed-browser-plugins-using-javascript

    ...但这不会检测到诸如 firebug、noscript 等浏览器插件。

    该脚本似乎只检测到以下插件:-

    • Java
    • Web 的 3D 标记语言
    • DjVu
    • 闪光
    • 谷歌谈话
    • Acrobat 阅读器
    • QuickTime
    • RealPlayer
    • SVG 查看器
    • 冲击波
    • 银光
    • Skype
    • VLC
    • Windows 媒体播放器
    • Xara

    【讨论】:

    • 我会尝试,但我认为这对我没有帮助:/
    【解决方案3】:

    此代码将为您提供所需的所有信息:

    <HTML>
    <HEAD>
    <TITLE>About Plug-ins</TITLE>
    </HEAD>
    <BODY>
    <SCRIPT language="javascript">
    numPlugins = navigator.plugins.length;
    
    if (numPlugins > 0)
      document.writeln("Installed plug-ins");
    else
     document.writeln("No plug-ins are installed.");
    
    for (i = 0; i < numPlugins; i++) {
     plugin = navigator.plugins[i];
     document.write("<center><font size=+1><b>");
     document.write(plugin.name);
     document.writeln("</b></font></center><br>");
     document.writeln("<dl>");
     document.writeln("<dd>File name:");
     document.write(plugin.filename);
     document.write("<dd><br>");
     document.write(plugin.description);
     document.writeln("</dl>");
     document.writeln("<p>");
     document.writeln("<table border=1 >");
     document.writeln("<tr>");
     document.writeln("<th width=20%>Mime Type</th>");
     document.writeln("<th width=50%>Description</th>");
     document.writeln("<th width=20%>Suffixes</th>");
     document.writeln("<th>Enabled</th>");
     document.writeln("</tr>");
     numTypes = plugin.length;
     for (j = 0; j < numTypes; j++)
     {
      mimetype = plugin[j];
    
      if (mimetype){
       enabled = "No";
       enabledPlugin = mimetype.enabledPlugin;
       if (enabledPlugin && (enabledPlugin.name == plugin.name))
        enabled = "Yes";
       document.writeln("<tr align=center>");
       document.writeln("<td>");
       document.write(mimetype.type);
       document.writeln("</td>");
       document.writeln("<td>");
       document.write(mimetype.description);
       document.writeln("</td>");
       document.writeln("<td>");
       document.write(mimetype.suffixes);
       document.writeln("</td>");
       document.writeln("<td>");
       document.writeln(enabled);
       document.writeln("</td>");
       document.writeln("</tr>");
      }
     }
     document.write("</table>");
    }
    </SCRIPT>
    </BODY>
    </HTML>
    

    【讨论】:

      猜你喜欢
      • 2010-11-12
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      • 1970-01-01
      • 1970-01-01
      • 2012-06-15
      • 2015-01-27
      • 1970-01-01
      相关资源
      最近更新 更多