Anzeige
Tutorialbeschreibung

Javascript und Ajax - Plugins

Javascript und Ajax - Plugins

Das nun folgende Tutorial ist ein Auszug aus der 7. Auflage des Buches: JavaScript und Ajax von Christian Wenz.

Die Zuschauer sind in der Multimedia-Gesellschaft das eigentliche knappe Gut. – Dieter Grimm

Kapitel 22 Plugins

Die Einbindung von externen Medien auf Webseiten umgeht viele der Beschränkungen von HTML, CSS und JavaScript. Animationen, Musikdateien, spezielle Formate wie PDF oder SVG und sogar Videos sind dank Browser-Plugins möglich. Das wiederum übt auf viele JavaScript-Entwickler eine große Faszination aus. Eine Überprüfung, ob ein Plugin vorhanden ist, ist interessant; der Zugriff auf das Plugin und damit auf eingebettete Medien ist noch wichtiger: Deswegen erläutert dieses Kapitel zunächst, wie Plugins mit JavaScript angesprochen werden, und das folgende Kapitel erläutert die Arbeit mit einigen bekannte(re)n Plugins.


22.1 Plugins erkennen  

Die Unterstützung von Musik beispielsweise ist kein in den Browsercode eingebautes Feature. Stattdessen verwenden beide Browser jeweils ein Plugin. Beim Netscape hieß es LiveAudio, beim Internet Explorer ist es ActiveMovie Control oder der installierte Windows Media Player 6.4, 7.x, 9.0, 10 oder 11 (in neueren Windows-Versionen ist er automatisch auf dem System vorhanden). Die JavaScript-Implementierung des Internet Explorers erkennt keine Plugins, deswegen kann man bei diesem Browser nicht mit JavaScript auf irgendwelche Plugins zugreifen (nur über einige Tricks). Beim Netscape Navigator und auch bei Mozilla-Browsern ist das schon anders.


22.1.1 Zugriff auf Plugins 

Alle Plugins werden beim Netscape und dann auch im Mozilla im Array navigator.plugins gespeichert. Der Internet Explorer kennt dieses Objekt auch, es ist aber leer. Beim Zugriff gibt es also eine Fehlermeldung, und man kann keine Werte abfragen. Jedes Element des navigator.plugins-Arrays ist ein Plugin-Objekt. Es hat die folgenden Eigenschaften:

gpBilder
>

name – der Name des Plugins

 

>

description – die Beschreibung des Plugins

 

>

filename – der lokale Dateiname des Plugins

 

>

length – die Anzahl der vom Plugin unterstützten MIME-Typen

Ein MIME-Typ ist eine Art von Identifikator, den der Webserver den Daten voranstellt, die er schickt. Bei HTML-Dateien ist dieser MIME-Typ text/html, bei .js-Dateien sollte er text/javascript sein.

Auf ein Plugin kann auf die folgende Art und Weise zugegriffen werden:

navigator.plugins["Plugin-Name"]

navigator.plugins[Index].

Wie immer beginnt die Zählung bei null, das dritte Plugin hat also den Index zwei.

Die folgende Schleife gibt alle Plugins aus, die im Browser installiert sind:

function tag(s){

   return "<" + s + ">";

}

document.write(tag("table border='1'"));

for (var i=0; i<navigator.plugins.length; i++) {

   document.write(tag("tr") + tag("td"));

   document.write(navigator.plugins[i].name);

   document.write(tag("/td"));

   document.write(tag("td"));

   document.write(navigator.plugins[i].description);

   document.write(tag("/td"));

   document.write(tag("td"));

   document.write(navigator.plugins[i].filename);

   document.write(tag("/td"));

   document.write(tag("td"));

   document.write(navigator.plugins[i].length)

   document.write(tag("/td") + tag("/tr"));

}

document.write(tag("/table"));


Bilder

Abbildung 22.1     Die Plugins im Browser

 

22.1.2 Zugriff auf MIME-Typen 

Um auf MIME-Typen zuzugreifen, gibt es ebenfalls mehrere Möglich-keiten:

>

navigator.plugins["Name"/Index]["Name"]

 

>

navigator.plugins["Name"/Index][Index]

 

>

navigator.mimeTypes["Name"/Index]

Ein mimeTypes-Objekt, also ein Element des Arrays, hat die folgenden Eigenschaften:

>

type: Name des MIME-Typs

 

>

description: Beschreibung des MIME-Typs

 

>

suffixes: mögliche Dateiendungen der Dateien des MIME-Typs

 

>

enabledPlugin: boolescher Wert, der angibt, ob es für diesen MIME-Typ ein Plugin im Browser gibt

Mit einer ähnlichen Schleife wie oben lassen sich alle vom Browser akzeptierten MIME-Typen ausgeben. Da dies jedoch in der Regel über hundert sind, müssen Sie es nicht unbedingt ausprobieren.


 

 

22.1.3 Refresh 

Von besonderem Interesse ist noch die Methode plugins.refresh(). Mit ihr wird die Liste aller Plugins aktualisiert, und gegebenenfalls werden alle Plugins aktiviert. Nach der Installation eines Plugins kann man diese Methode aufrufen. Ein boolescher Parameter muss übergeben werden. Das hat die folgenden Konsequenzen:

>

navigator.plugins.refresh(false): Plugins, die normalerweise aktiv wären, werden nicht aktualisiert oder aktiviert.

 

>

navigator.plugins.refresh(true): Die gesamte Plugin-Liste wird aktualisiert, und alle Plugins werden neu gestartet.

Die letzte Variante wird ebenfalls erreicht, wenn kein Parameter an die refresh()-Methode übergeben wird. Wenn ein Benutzer ein Plugin installieren und den Browser neu starten muss, weil er auf Ihrer Seite war und das Plugin benötigt, so wird er danach nicht unbedingt auf Ihre Seite zurückkommen. Den Neustart können Sie sich aber wie gesagt sparen, wenn Sie navigator.plugins.refresh(true) verwenden.

Wie bereits die Netscape-Browser haben auch Mozilla-Browser einen Menübefehl Help N About plug-ins bzw. Hilfe N Über Plug-ins, der Ähnliches leistet; alternativ verwenden Sie die Pseudo-URL about:plugins. In Abbildung 22.2 finden Sie eine Beispielausgabe.


Bilder

Abbildung 22.2     Die Plugin-Anzeige eines Mozilla-Browsers

Mit diesen Informationen können Sie dann auch feststellen, ob ein bestimmtes Plugin vorliegt: Sie sehen einfach in navigator.plugins nach, ob der entsprechende Eintrag vorhanden ist.

Leider funktioniert das wie gesagt nur im Mozilla-Browser. Im Internet Explorer sind alle Plugins ActiveX-Objekte, die wie folgt instanziiert werden würden:

var obj = new ActiveXObject("NameDesPlugins");

Mittels try/catch können Sie dann überprüfen, ob das funktioniert, beziehungsweise bei einem Fehler entsprechend reagieren:

try {

   var obj = new ActiveXObject("NameDesPlugins");

   var plugin = true;

} catch(e) {

   var plugin = false;

}

 

Das Tutorial ist ein Auszug aus der 7. Auflage des Buches von Christian Wenz:

JavaScript und Ajax - Das umfassende Handbuch
Galileo Computing, 853 Seiten, 8. aktualisierte Auflage

Die Veröffentlichung des Kapitels erfolgt mit freundlicher Genehmigung von Galileo Press.

Mehr Informationen zum aktualisierten Fachbuch für Webentwickler gibt es hier: JavaScript und Ajax
 
Alle Kapitel des Buches:
1 Grundlagen
2 JavaScript-Praxis
3 Professionelles JavaScript
4 Web 2.0 und Ajax
5 Kommunikation
6 Serverseitige Programmierung
7 Sicherheit
8 Praxis
9 Anhang
Bilder


 

DVD-Werbung
Kommentare
Achtung: Du kannst den Inhalt erst nach dem Login kommentieren.
Portrait von tanzfrosch
  • 11.01.2018 - 14:56

Dankeschön, tolles Tut. !

x
×
×