Обнаружение установленных плагинов в разных браузерах?
Мне интересно, есть ли способ обнаружить установленные плагины в разных браузерах.
До сих пор я обнаружил, что вы можете "обнаружить" плагины в firefox, пытаясь угадать, существует ли хром://path/to/some/plugin/image.gif.
Этот код для 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, т.е. opera, chrome, safari):)
Ответы
Ответ 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>
Ответ 2
Этот код предоставит вам всю необходимую информацию:
<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>
Ответ 3
Вы можете попробовать следующее: http://www.sliceratwork.com/detect-installed-browser-plugins-using-javascript
... но это не приведет к обнаружению надстроек браузера, таких как firebug, noscript и т.д.
То, что script, похоже, обнаруживает только следующие плагины: -
- Java
- Язык разметки 3D для веб-сайтов
- DjVu
- Вспышка
- Google Talk
- Acrobat Reader
- QuickTime
- RealPlayer
- SVG Viewer
- Shockwave
- Silverlight
- Skype
- VLC
- Проигрыватель Windows Media
- Xara