Ver Mensaje Individual
  #3 (permalink)  
Antiguo 03/08/2011, 02:25
Avatar de zerokilled
zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: >> Como detectar si un usuario tiene instalado mi plugin]???

buenas,
para asegurarnos, primero debes aclararte de cual de ellos se trata ya que en cierta medida son distintos: plugin o extensión. por lo que describes, deduzco que te refieres a extensión. al ser una extensión, éste no te aparecerá en la colección navigator.plugins.

por otro lado, de lo que recuerdo cuando lei la documentación [y volviendo a buscar rapidamente], chrome no define algún array u objeto en el núcleo de javascript para enumerar las extensiones instaladas. entonces, ¿cómo algunos sitios web determinan si una extensión esta disponible? una de las técnicas es que dicho sitio web originalmente tiene un mensaje que indica al visitante que debe instalar una extensión para su navegador. cuando finalmente la extensión esta disponible, la extensión inyecta un código javascript para eliminar u ocultar el mensaje y procede con el resto de la ejecucción de la extensión. esta técnica es la instalación manual de parte del visitante. otra forma que se me ocurre [pero no lo he probado] es la instalación automática. consistiría en un script que carga normalmente en el sitio web. dicho script genera un iframe indicando como url la extensión o una redirección a la extensión. puesto que se trata de un archivo que en condiciones normales un user-agent no reconoce, el navegador ofrecerá descargar el archivo. una vez descargado el navegador lo reconoce como una extensión y ofrecerá al usuario instalarlo. sin embargo, ¿cómo puedes hacer para solo ofrecer instalar la extensión cuando éste no este disponible en el navegador? lo que puedes hacer es un delay de la redirección con setTimeout. luego, desde la extensión cancelas el delay (clearTimeout) para que la redirección no ocurra, de modo que significa que la extensión ya esta instalada.

quizas te interese leer la sección acerca de la publicación de extensiones de la documentación oficial. ahi menciona algunos detalles que debes considerar en caso de tener algún problema. Finishing and distributing your extension.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.