# mimeTypes

mimeTypes: Allgemeines zur Verwendung

### Eigenschaften:

description (Beschreibung eines MIME-Typs)
enabledPlugin (Plugin vorhanden)
length (Anzahl MIME-Typen)
suffixes (Dateiendungen)
type (MIME-Typ)

## mimeTypes: Allgemeines zur Verwendung

Über das Objekt `mimeTypes`, das in der JavaScript-Objekthierarchie unterhalb des navigator-Objekts liegt, können Sie ermitteln, welche Dateitypen der Browser des Anwenders kennt, und ob ein Plugin zum Anzeigen oder Abspielen eines Dateityps vorhanden ist. Lesen Sie zum besseren Verständnis von MIME-Typen gegebenenfalls den Abschnitt MIME-Typen.

Um einen MIME-Typ anzusprechen, stehen folgende Möglichkeiten zur Verfügung:

### Schema 1:

    navigator.mimeTypes[#].Eigenschaft

### Schema 2:

    navigator.mimeTypes["MIME-Typ"].Eigenschaft

### Erläuterung:

MIME-Typen können Sie auf zwei Arten ansprechen:

- mit einer Indexnummer (wie in Schema 1)
  Bei Verwendung von Indexnummern geben Sie `navigator.mimeTypes` an und dahinter in eckigen Klammern eine Zahl. Sie können allerdings nicht wissen, welche MIME-Typen an welcher Stelle gespeichert sind. Die Verwendung von Indexnummern ist deshalb nur sinnvoll, wenn Sie beispielsweise in einer Schleife alle verfügbaren MIME-Typen ermitteln.
- mit dem Namen eines MIME-Typs als Indexnamen (wie in Schema 2)
  Dabei notieren Sie wie beim Ansprechen mit Indexnummer hinter `navigator.mimeTypes` eckige Klammern. Innerhalb der eckigen Klammern notieren Sie in Anführungszeichen den MIME-Typ-Namen. Dabei gilt die übliche Notation für MIME-Typen, also die Form "Kategorie/Unterkategorie". Als Indexnamen sind zum Beispiel Werte möglich, die Sie mit der Objekteigenschaft type ermitteln können.

### Beispiel für das Objekt insgesamt:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <script type="text/javascript">
    document.writeln('<table border="1">');
    for (var i = 0; i < navigator.mimeTypes.length; i++) {
      document.writeln("<tr>");
      document.writeln("<td>" + navigator.mimeTypes[i].type + "<\/td>");
      document.writeln("<td>" + navigator.mimeTypes[i].suffixes + "<\/td>");
      document.writeln("<td>" + navigator.mimeTypes[i].description + "<\/td>");
      if (navigator.mimeTypes[i].enabledPlugin) {
        document.writeln("<td>" + navigator.mimeTypes[i].enabledPlugin + "<\/td>");
      } else {
        document.writeln("<td>kein Plugin<\/td>");
      }
      document.writeln("<\/tr>");
    }

    document.writeln("<\/table>");
    </script>
    </body></html>

### Erläuterung:

Das Beispiel schreibt mit Hilfe der Methode writeln() dynamisch eine Tabelle in die HTML-Datei. In der Tabelle werden alle verfügbaren Plugins aufgelistet. In der linken Spalte steht der MIME-Typ, also die Kategorie/Unterkategorie, wie Sie sie auch zur MIME-Typ-Adressierung mit Hilfe von Indexnamen verwenden können. In der Spalte daneben stehen die zugehörigen Dateiendungen. Daneben steht eine Kurzbeschreibung des MIME-Typs, und in der letzten Spalte steht, ob der Browser ein Plugin besitzt, um Dateien des entsprechenden Typs zu verarbeiten.

### Beachten Sie:

Welche Eigenschaften im Objekt `mimeTypes` gespeichert sind, ist stark abhängig vom verwendeten Browser. So speichert der Netscape 6 nur tatsächlich vorhandene Plugins als eigene Objekteigenschaft, während Opera 5.12 und Netscape 4 z.B. auch den Type `image/jpeg` mit angeben. Im Internet Explorer existiert dieses Objekt nur aus Kompatibilitätsgründen und enthält keinen Inhalt.

## description

Speichert die Kurzbeschreibung eines MIME-Typs.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    if (navigator.mimeTypes["application/pdf"])
      alert(navigator.mimeTypes["application/pdf"].description);
    </script>
    </head><body>
    </body></html>

### Erläuterung:

Das Beispiel prüft zuerst, ob der MIME-Typ "application/pdf" existiert. Wenn ja, wird in einem Meldungsfenster die Kurzbeschreibung zum MIME-Typ "application/pdf" ausgegeben. Netscape 4.x gibt dabei freilich nicht viel mehr bekannt als "Acrobat", in Opera 5.12 und Netscape 6 wird "Acrobat (*.pdf)" ausgegeben und Safari 1.2 benutzt die Abkürzung "PDF".

### Beachten Sie:

Der Internet Explorer 5.0 Macintosh Edition interpretiert dieses Beispiel auch.

## enabledPlugin

Speichert, ob für einen MIME-Typ ein Plugin installiert ist. Wenn kein Plugin verfügbar ist, der Browser jedoch den MIME-Typ kennt, wird der Wert `null` gespeichert.

Die Eigenschaft stellt selbst ein Objekt dar. Sie ist dabei eine Art Zeiger auf das entsprechende plugins-Objekt. Hinter der Eigenschaft lassen sich wiederum alle Eigenschaften und Methoden des `plugins`-Objekts notieren.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <script type="text/javascript">
    if (navigator.mimeTypes["x-world/x-vrml"] &&
        navigator.mimeTypes["x-world/x-vrml"].enabledPlugin != null)
      document.write('<object data="yzeplin.wrl" width="400" height="300"><\/object>');
    </script>
    </body></html>

### Erläuterung:

Das Beispiel ermittelt, ob der Browser den MIME-Typ kennt und ob er ein Plugin für VRML-Dateien verfügbar hat. Wenn ja, wird mit Hilfe der write()-Methode dynamisch das HTML-Konstrukt zum Einbinden einer VRML-Datei geschrieben. Anwender, die kein VRML-Plugin haben, bekommen dadurch weder Fehlermeldungen noch ein leeres Objektfenster. Solche Anwender bekommen einfach gar nicht mit, dass in der Datei eigentlich eine VRML-Datei referenziert ist.

## length

Speichert die Anzahl der MIME-Typ-Einträge, die der Browser kennt.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <b>Folgende Plugins sind installiert:</b>
    <script type="text/javascript">
    for (var i = 0; i < navigator.mimeTypes.length; ++i)
      if (navigator.mimeTypes[i].enabledPlugin != null)
        document.write("<br>" + navigator.mimeTypes[i].description);
    </script>
    </body></html>

### Erläuterung:

Das Beispiel fragt in einer for-Schleife ab, ob für den jeweils aktuellen MIME-Typ ein Plugin installiert ist. Wenn ja, wird eine Zeile mit der Kurzbeschreibung des MIME-Typs geschrieben. So werden am Ende alle installierten Plugins mit sprechenden Beschreibungen aufgelistet.

Bei der Definition der for-Schleife dient die Eigenschaft `navigator.mimeTypes.length` als Abbruchbedingung.

### Beachten Sie:

Der Internet Explorer 5.0 Macintosh Edition interpretiert dieses Beispiel auch.

## suffixes

Speichert die typischen Dateiendungen, die zu einem MIME-Typ gehören.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    if (navigator.mimeTypes["image/jpeg"])
      alert(navigator.mimeTypes["image/jpeg"].suffixes);
    </script>
    </head><body>
    </body></html>

### Erläuterung:

Das Beispiel prüft, ob der Browser den MIME-Typ kennt und gibt in einem Meldungsfenster aus, welche Dateiendungen unter den MIME-Typ "image/jpeg" fallen.

### Beachten Sie:

Im Netscape 6 und Konqueror 3.1 ist dieses Beispiel nicht nachvollziehbar, da diese Browser nur die MIME-Typen als eigene Objekteigenschaft speichern, zu denen tatsächlich ein Plugin vorliegt.

Der Internet Explorer 5.0 Macintosh Edition interpretiert dieses Beispiel auch.

## type

Speichert die eigentliche MIME-Typ-Bezeichnung nach dem Schema "Kategorie/Unterkategorie".

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <b>Folgende MIME-Typen sind dem Browser bekannt:</b>
    <script type="text/javascript">
    for (var i = 0; i < navigator.mimeTypes.length; ++i)
      document.write("<br>" + navigator.mimeTypes[i].type);
    </script>
    </body></html>

### Erläuterung:

Das Beispiel klappert in einer for-Schleife alle dem Browser bekannten MIME-Typen ab und schreibt jeweils eine Zeile mit der MIME-Typ-Bezeichnung. So werden am Ende alle dem Browser bekannten MIME-Typen aufgelistet.

### Beachten Sie:

Der Internet Explorer 5.0 Macintosh Edition interpretiert dieses Beispiel auch.

| plugins
| navigator

© 2007 Impressum