2011-01-08 1002 views
8

Estoy usando un complemento integrado en mi aplicación web para habilitar el escaneo (el plugin de exploración web de Dynamsoft). Estoy sirviendo un xpi a usuarios de Firefox y usuarios de crx a Chrome. Al ver la página sin el complemento instalado, Firefox intentará descargar el complemento y el usuario deberá hacer clic en "instalación manual" para instalarlo. Chrome no intentará descargar el complemento (esto es por diseño, según http://code.google.com/p/chromium/issues/detail?id=15745)¿Cómo verifico en Firefox y Chrome si está instalado un complemento?

Me gustaría usar javascript para detectar si el plugin está instalado o no (preferiblemente antes de intentar cargarlo a través de la etiqueta de inserción) . Si no hay ningún complemento instalado, deseo proporcionar una explicación y un enlace al complemento correcto para el usuario. Ambos navegadores instalan sus respectivos complementos sin ningún problema si el usuario hace clic en un enlace de descarga en lugar de solo intentar cargar a través de la etiqueta de inserción.

Entonces, ¿alguien sabe una forma de detectar si un plugin está instalado usando javascript?

Respuesta

10

¿Has echado un vistazo a window.navigator.plugins?

..y la referencia equivalente para webkit plugins-

La referencia a Apple por el DOM WebKit parece haber desaparecido. navigator.plugins funciona para mí en Safari & Chrome. Vea un jsfiddle aquí: http://jsfiddle.net/2EaKD/

+0

¡Brillante! Jugaré con eso un poco, pero definitivamente parece ser lo que estaba buscando. ¡¡¡Gracias!!! –

+0

Y tenemos un ganador. ¡Funciona de maravilla! ¡Gracias! –

+0

Jens, ¿esto funcionó para ti en webkit ?, el enlace de russau a los complementos de webkit está algo roto (redirige a una página nueva) o no muy claro – knocte

-1

Me parece un agujero de seguridad potencial, si un sitio web (algo remotamente) pudiera acceder a sus complementos (algo localmente). Así que supongo que esto no es posible.

+2

Podría ser, pero en realidad no necesitaría acceder al complemento, solo sé si existe. –

+2

es un poco un "agujero de privacidad", ya que se puede utilizar para tomar una huella digital de su navegador. ver una demostración aquí: https://panopticlick.eff.org/ – russau

-1

Su complemento puede controlar qué páginas abre el usuario. Si es su página, puede hacer que su complemento establezca una variable global en esa página y el JavaScript de su página debería poder detectarlo.

+0

Lamentablemente no es mi complemento, aunque pude consultar con el creador del plugin si establecían alguna variable que pudiera verificar. Preferiblemente, me gustaría comprobar el plugin antes de intentar incrustarlo, para evitar solicitudes de instalación sin avisar al usuario. –

+0

@Jens Alm: Ya veo. Dependiendo del tipo de "complemento", la respuesta de @ russau podría ayudar. –

Cuestiones relacionadas