¿Cómo verifico en Firefox y Chrome si hay un complemento instalado?

Estoy usando un complemento integrado en mi aplicación web para habilitar el escaneo (complemento de escaneo web de Dynamsoft). Estoy sirviendo un xpi a los usuarios de Firefox y un crx a los usuarios de Chrome. Cuando vea 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)

Me gustaría usar javascript para detectar si el complemento 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, quiero 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 simplemente intentar cargar a través de la etiqueta de inserción.

Entonces, ¿alguien conoce alguna forma de detectar si un complemento está instalado usando javascript?

preguntado el 08 de enero de 11 a las 22:01

3 Respuestas

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

..y la referencia equivalente para webkit plugins-

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

respondido 26 mar '12, 06:03

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

Y tenemos un ganador. ¡Funciona de maravilla! ¡Gracias! - Jens Alm

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

@knocte sí, los enlaces de Apple han desaparecido. actualizó la respuesta con un enlace a un jsfiddle que funciona en Chrome / Safari - russau

Me suena como un potencial agujero de seguridad, si un sitio web (algo de forma remota) pudiera acceder a sus complementos (algo localmente). Entonces supongo que esto no es posible.

Respondido el 09 de enero de 11 a las 01:01

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

¿Es un pequeño "agujero de privacidad", ya que se puede utilizar para tomar huellas dactilares de su navegador? ver una demostración aquí: panopticlick.eff.org - russau

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 detectar esto.

Respondido el 09 de enero de 11 a las 01:01

Desafortunadamente, no es mi complemento, aunque podría verificar con el fabricante del complemento si configuraron la variable som que pudiera verificar. Preferiblemente, me gustaría verificar el complemento antes de intentar incrustarlo, para evitar solicitudes de instalación sin advertir al usuario. - Jens Alm

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

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.