Los plug-ins permiten integrar contenidos de distintos tipos dentro de las páginas HTML. La URL "about:plugins permite ver los plug-ins instalados en Netscape.
Los plug-ins dependen de un sistema de identificación de tipos de ficheros llamado Tipos MIME (Multi-purpose Internet Mail Extensions). Originalmente se creó para que las aplicaciones de correo pudiesen visualizar contenidos multimedia.
Normalmente un tipo de fichero corresponde a una extensión que a su vez está asociada con un determinado tipo MIME. Ej.: el formato .AVI puede tener tipo MIME video/x-msvideo, donde video indica el tipo de contenido del fichero y x-msvideo indica el subtipo. El prefijo x- indica que se trata de un tipo propuesto como estándar.
Netscape accede al arrancar al directorio Plug-ins y asocia cada plug-in instalado con los correspondientes tipos MIME. Cuando se encuentran datos de dichos tipos en una página, se carga una instancia del plug-in en memoria para gestionar la información. Por tanto, cuantos más plug-ins se necesiten para visualizar los contenidos de una página, más tardará en cargarse dicha página. De ahí que se deban intentar utilizar los formatos JPGE y GIF (y GIF animado) siempre que sea posible.
La tabla siguiente recoge los tipos MIME habituales:
Tipo | Subtipo |
text | text |
richtext | |
enriched | |
tab-separated-values | |
sgml | |
multipart | mixed |
alternative | |
digest | |
parallel | |
form-data | |
message | rfc822 |
partial | |
external-body background="nombre.gif" | |
news | |
application | octet-stream |
postscript | |
oda | |
mac-binhex40 | |
wordperfect5.1 | |
zip | |
cybercash | |
image | jpeg |
gif | |
tiff | |
audio | basic |
32kadpcm | |
video | mpeg |
quicktime |
Se utiliza el tag EMBED:
<EMBED SRC="filename" WIDTH=n HEIGHT=m PALETTE=foreground|background>
Cada plug.in tiene atributos específicos, por ejemplo:
<EMBED SRC="theavi.avi" WIDTH=300 HEIGHT=200 AUTOSTART="true" LOOP="true">
Direcciones donde conseguir distintos plug-ins. Dos páginas con multitud de plug-ins son:
En JS sólo se puede actuar sobre el tag EMBED, por ejemplo, para escribirlo dinámicamente en una página, pero no se puede actuar sobre el plug-in propiamente dicho.
El siguiente script permite comprobar si hay instalado un plug-in para gestionar un determinado tipo de archivo. Para ello se crea una pequeña ventana en la que se intenta abrir un archivo del tipo MIME correspondiente:
function ExistePlugIn(mimeType) { var havePlugIn=false var tinywnd=window.open('', tmpwnd, width=1, height=1) if (tinywnd != null) { if (tinywnd.document.open(mimeType) != null) havePlugIn=true tinywnd.close() } return havePlugIn }
Por ejemplo, para combrobar si existe un plug-in para Director:
var haveShockWavePlugIn=ExistePlugIn(application/x-director)
Versiones futuras de Netscape (no sé exactamente cuál) dispondrán de dos nuevos objetos: