Cómo manejar plugins activados por click en JavaScript

13 mayo, 2014 2:58 por

Esta es una traducción del artículo original publicado en el blog de Mozilla Hacks.

Del Firefox 26 en adelante – y también para versiones inseguras de Java y Flash en versiones anteriores del Firefox – la mayoría de los plugins no serán activados automáticamente. Debido a esto ya no podemos asumir que los plugins se ejecutarán automáticamente cuando son insertados en la página. Este artículo cubre algunas técnicas que podemos aplicar con JavaScript para manejar los plugins, para reducir la posibilidad que un sitio falle debido a esto.

Determinando si un plugin está instalado

Para detectar si un plugin está instalado, podemos buscar en navigator.mimeTypes el MIME type del plugin que requerimos, para hacer la distinción entre plugins que no están instalados y plugins que están activados por click. Por ejemplo:

function isJavaAvailable() {
    return 'application/x-java-applet' in navigator.mimeTypes;
}

Nota: no iteres sobre navigator.mimeTypes o navigator.plugins, ya que esta enumeración se va a remover en futuras versiones de Firefox por razones de privacidad.

Usando un callback para determinar si un plugin está activado

Lo siguiente con lo que hay que tener cuidado es invocar un plugin inmediatamente después de que una instancia fue creada en la página, dado que esto puede causar errores porque el plugin no se ha cargado completamente. El plugin debería hacer una invocación al JavaScript una vez que ha sido creado, utilizando scripting de NPRuntime:

function pluginCreado() {
    document.getElementById('miPlugin').invocarMetodoDePlugin();
}

  

Nota que el parámetro callback (o algo equivalente) debe ser implementado por tu plugin. Esto se puede hacer en Flash usando el API flash.external.ExternalInterface, o en Java usando el paquete netscape.javascript.

Usando propiedades del plugin para determinar cuando está activado

Cuando utilizamos un plugin que no nos permite especificar un “callback” y no lo podemos modificar, una técnica alterna es probar propiedades que el plugin debería tener, utilizando código como este:

Esperando a que el plugin se active!

window.onload = function () {
    if (document.getElementById('miPlugin').miPropiedad !== undefined) {
        document.getElementById('miNotificacion').style.display = 'none';
        document.getElementById('miPlugin').invocarMetodoDePlugin();  
    } else {
        console.log("El plugin no esta activado todavia.");
        setTimeout(revisarPlugin, 500);
    }
}

Haciendo que los plugins estén visibles en la página

Cuando un sitio quiere que el usuario active un plugin, el indicador principal es la visibilidad del plugin en la página. Por ejemplo:

Silverlight - activación

Si la página crea un plugin que es un pequeño o que está oculto completamente, el único indicador visual es el pequeño ícono que aparece en la barra de URL de Firefox. O sea, aunque el elemento del plugin vaya a ser ocultado eventualmente, las páginas deberían crear el elemento del plugin de una manera visible inicialmente, y luego cambiar su tamaño o esconderlo luego de que el usuario lo ha activado. Ésto se puede hacer de manera similar a la técnica del “callback” mencionada anteriormente:

function pluginCreado() {
  // No necesitamos ver el plugin, asi que lo ocultamos
  var plugin = document.getElementById('miPlugin');
  plugin.height = 0;
  plugin.width = 0;
  plugin.invocarMetodoDePlugin();
}


  

Nota: Para más información sobre cómo funcionan los plugins en Firefox, puedes leer ¿Qué tengo que hacer para activar los plugins? en support.mozilla.org.

The following two tabs change content below.

jorgev

Add-ons Developer Relations Lead at Mozilla
Jorge trabaja para el equipo de complementos de Mozilla, y se dedica a Mozilla Hispano y Mozilla Costa Rica en su tiempo libre. Actualmente está encargado del blog de Mozilla Hispano Labs.

Compartir artículo:

  • ¡Participa!

    Firefox Friends »
    Agrega botones de Firefox en tu sitio web y comparte tu amor por Mozilla Firefox.
    Armada alucinante »
    Ayuda a otros usuarios en Twitter.
    Colabora con la comunidad »
    En Mozilla lo importante son las personas. Descubre cómo puedes colaborar.

    Boletín Firefox

    Suscríbete al boletín de novedades de Firefox.

  • Descargas

    Descarga los programas de Mozilla.

    Lo más visto

    cc-by-sa