Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

 <<   zurück
JavaScript und AJAX von Christian Wenz
Das umfassende Handbuch
Buch: JavaScript und AJAX

JavaScript und AJAX
839 S., mit DVD, 39,90 Euro
Galileo Computing
ISBN 3-89842-859-1
gp Kapitel 22 Plugins
  gp 22.1 Plugins erkennen
    gp 22.1.1 Zugriff auf Plugins
    gp 22.1.2 Zugriff auf MIME-Typen
    gp 22.1.3 Refresh

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.


Galileo Computing

22.1 Plugins erkennen  downtop

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.


Galileo Computing

22.1.1 Zugriff auf Plugins  downtop

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:

gp  name – der Name des Plugins
gp  description – die Beschreibung des Plugins
gp  filename – der lokale Dateiname des Plugins
gp  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"));

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 22.1     Die Plugins im Browser


Galileo Computing

22.1.2 Zugriff auf MIME-Typen  downtop

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

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

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

gp  type: Name des MIME-Typs
gp  description: Beschreibung des MIME-Typs
gp  suffixes: mögliche Dateiendungen der Dateien des MIME-Typs
gp  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.


Galileo Computing

22.1.3 Refresh  toptop

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:

gp  navigator.plugins.refresh(false): Plugins, die normalerweise aktiv wären, werden nicht aktualisiert oder aktiviert.
gp  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.

Abbildung
Hier klicken, um das Bild zu Vergrößern

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;
}
 <<   zurück
  
  Zum Katalog
Zum Katalog: JavaScript und AJAX
JavaScript und AJAX
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: JavaScript und AJAX - Das Video-Training






 JavaScript und AJAX -
 Das Video-Training


Zum Katalog: Webseiten programmieren und gestalten






 Webseiten
 programmieren
 und gestalten


Zum Katalog: XHTML, HTML und CSS






 XHTML, HTML und CSS


Zum Katalog: CSS-Praxis






 CSS-Praxis


Zum Katalog: AJAX






 AJAX


Zum Katalog: PHP 5 und MySQL 5






 PHP 5 und MySQL 5


Zum Katalog: TYPO3 4.0






 TYPO3 4.0


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de