检测不同浏览器中安装的插件?

15

我想知道有没有办法检测不同浏览器上安装的插件。 到目前为止,我已经发现可以通过尝试猜测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)的插件列表的任何提示、技巧、解决方法等方面的建议 :)

3个回答

28

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

<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>

1
非常抱歉这么久才接受这个答案。当时这不是一个标准,只在Firefox和/或Chrome中有效。现在似乎得到了广泛支持,所以我会接受你的答案。 :) - tftd
2
不列出用户安装的插件。 - catbadger
这个能在移动设备上运行吗,更具体地说,在运行Safari的基于iOS的设备上呢? - kPieczonka
我还没有在移动设备上测试过它,但我认为它可能会起作用,你可以尝试一下并告诉我们。 - Hackaholic
1
navigator.plugins现已被弃用,你知道有什么替代方案吗? 参考:https://developer.mozilla.org/en-US/docs/Web/API/Navigator/plugins - Ivan Fraixedes

1
这段代码将为您提供所需的所有信息:

<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>

1
你可以尝试这个:http://www.sliceratwork.com/detect-installed-browser-plugins-using-javascript 但是这不会检测像firebug、noscript等浏览器插件。
该脚本似乎只能检测以下插件:
- Java - 用于Web的3D标记语言 - DjVu - Flash - Google Talk - Acrobat Reader - QuickTime - RealPlayer - SVG Viewer - Shockwave - Silverlight - Skype - VLC - Windows Media Player - Xara

我会试一下,但我不认为那会对我有帮助 :/ - tftd

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