2011-03-04 19 views
11

Me pregunto si hay una forma de detectar complementos instalados en diferentes navegadores. Hasta ahora he descubierto que puedes "detectar" complementos en Firefox tratando de adivinar si existe chrome: //path/to/some/plugin/image.gif.¿Detecta plugins instalados en diferentes navegadores?

Este código de Firefox se ve así:

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

Me interesa cómo se ve el código en IE (más importante para mí) y si hay otras maneras de lograr esta tarea para otros navegadores también ?

Quiero saber porque tengo un cliente idiota que dice que no tiene plugins instalados aunque estoy 99,99% seguro de que sí. El problema es que algunos de esos complementos están rompiendo partes del panel de control de administración de un sitio web que he escrito.

De todos modos estaría contento de escuchar cualquier consejos, trucos, soluciones alternativas y etc para conseguir la lista de plugins de los navegadores más populares (y siguientes, es decir, ópera, Chrome, Safari) :)

Respuesta

20

Este código mostrará una lista de todos los plugins instalados en el navegador

<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

Lamento que haya tardado tanto en aceptar esta respuesta. En el momento esto no era un estándar y solo funcionaba en Firefox y/o Chrome. Esto ahora parece ser ampliamente aceptado, así que aceptaré tu respuesta. :) – tftd

+0

@tftd está todo bien. gracias por aceptar mi respuesta – Hackaholic

+0

No funciona con Firefox 48 (en OSX). – DanFromGermany

1

Usted podría intentar esto : http://www.sliceratwork.com/detect-installed-browser-plugins-using-javascript

... pero esto no va a detectar los complementos del explorador como Firebug, noscript, etc.

Ese guión parece detectar sólo los siguientes complementos: -

  • Java
  • 3D Markup Language for Web
  • DjVu
  • flash
  • Google Talk
  • Acrobat Reader
  • QuickTime
  • RealPlayer
  • SVG Viewer
  • Shockwave
  • Silverlight
  • Skype
  • VLC
  • Reproductor de Windows Media
  • Xara
+0

Lo intentaré, pero no creo que eso me ayude:/ – tftd

+4

El enlace no funciona. –

2

Este código le dará toda la información que necesidad:

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