| ## images
| images: Allgemeines zur Verwendung ### Eigenschaften: border (Rahmen) complete (Ladezustand) height (Höhe) hspace (horizontaler Abstand) length (Anzahl Grafiken) lowsrc (Vorschaugrafik) name (Name) src (Grafikdatei) vspace (vertikaler Abstand) width (Breite) ### Methode: handleEvent() (Ereignis verarbeiten)

## images: Allgemeines zur Verwendung

Mit dem Objekt `images`, das in der JavaScript-Objekthierarchie unterhalb des document-Objekts liegt, haben Sie Zugriff auf alle Grafiken, die in einer HTML-Datei definiert sind. Dabei können Sie auch vorhandene Grafiken dynamisch durch andere ersetzen.

Ein neues Grafik-Objekt wird automatisch erzeugt, wenn der Web-Browser eine Grafik in der HTML-Datei vorfindet.

Es stehen folgende Arten zur Verfügung, mit JavaScript eine bestimmte Grafik anzusprechen:

### Schema 1 / Beispiel 1:

    document.images[#].Eigenschaft
    document.images[#].Methode()

    Hoehe = document.images[0].height;

### Schema 2 / Beispiel 2:

    document.BildName.Eigenschaft
    document.BildName.Methode()

    Hoehe = document.Portrait.height;

### Erläuterung:

Grafikobjekte können Sie auf zwei Arten ansprechen:

- mit einer Indexnummer (wie in Schema 1 / Beispiel 1)
  Bei Verwendung von Indexnummern geben Sie `document.images` an und dahinter in eckigen Klammern, die wie vielte Grafik in der Datei Sie meinen. Jede Grafik, die in HTML mit dem `<img>`-Tag notiert wurde, zählt. Beachten Sie, dass der Zähler bei 0 beginnt, d.h. die erste Grafik sprechen Sie mit `images[0]` an, die zweite Grafik mit `images[1]` usw. Beim Zählen gilt die Reihenfolge, in der die `<img>`-Tags in der Datei notiert sind.
- mit dem Namen der Grafik (wie in Schema 2 / Beispiel 2)
  Dabei geben Sie mit `document.BildName` den Namen an, den Sie bei der Definition der Grafik im einleitenden `<img>`-Tag im Attribut `name=` angegeben haben.

Für Grafiken, die Sie nachträglich mit JavaScript anzeigen möchten, müssen Sie jedoch eigene neue Grafikobjekte in JavaScript erzeugen. Das ist besonders dann wichtig, wenn Sie Grafiken dynamisch durch andere Grafiken ersetzen wollen.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <script  type="text/javascript">
    <!--
     Zweitbild =new Image(104,102)
     Zweitbild.src="cow2.gif";
     document.write('<img src="'+Zweitbild.src+'" border="0" alt="Kuh">');
     alert("Weite: "+Zweitbild.width+"\nHoehe: "+Zweitbild.height);
    //-->
    </script>
    </body></html>

### Erläuterung:

Ein neues Grafik-Objekt speichern Sie in einem selbst vergebenen Objektnamen, im obigen Beispiel in dem Namen `Zweitbild`. Hinter dem Namen folgt ein Istgleichzeichen. Dahinter folgt das reservierte Wort `new` und der Aufruf der Objektfunktion `Image()` (erster Buchstabe großgeschrieben!).

Anschließend können Sie mit der neu erzeugten Instanz arbeiten. So können Sie der Instanz über die Objekteigenschaft `src` eine Grafikdatei zuordnen, im Beispiel die Datei `blau.gif`. Die dritte Zeile im obigen Beispiel zeigt eine Anweisung, wie Sie dynamisch eine vorhandene Grafik ersetzen können. Angenommen, in der HTML-Datei wurde als erste Grafik in der Datei mit `<img src="rot.gif">` ein rotes Bild eingebunden. Mit Hilfe von JavaScript können Sie nun, beispielsweise in Abhängigkeit vom Klicken auf einen Verweis, dieses rote Bild durch ein anderes, blaues Bild ersetzen.

Die Objektfunktion `Image()` kennt die zwei optionalen Parameter.
1.width Breite des Bildes
2.height Höhe des Bildes
Diese Parameter können Sie beim Erzeugen des Imageobjektes mit angeben. Zur Demonstration wird im Beispiel die Höhe und die Breite der Grafik mit ausgegeben.
Netscape 6.1 und Opera 5.12 interpretieren diese optionalen Parameter nicht und speichern jeweils den Wert 0 für die Höhe und Breite der Grafik.

### Beachten Sie:

Ein Anwendungsbeispiel für den Einsatz dynamisch austauschbarer Grafiken finden Sie in diesem Dokument: Dynamische grafische Buttons.

## border

Speichert die Angabe zum Rahmen um eine Grafik, wie sie mit der Angabe `border=` im `<img>`-Tag möglich ist. Netscape speichert auch dann einen Wert, wenn die Angabe im HTML-Tag fehlt. Der MS Internet Explorer speichert nur dann einen Wert, wenn im HTML-Tag ein Wert angegeben ist.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <a href="javascript:alert(document.Anna.border)">
    <img src="anna.jpg" border="3" alt="Anna" name="Anna">
    </a>
    </body></html>

### Erläuterung:

Das Beispiel enthält eine Grafik, die in einen Verweis eingeschlossen ist. Beim Anklicken des Verweises wird mit alert() der Wert ausgegeben, der in der Angabe `border=` gespeichert ist.

### Beachten Sie:

Im Netscape 6.1 ist diese Angabe fehlerhaft und enthält als Rückgabewert `-1`.
Das Ändern der Eigenschaft `border` ist bislang nur im MS Internet Explorer möglich. Im Netscape 6.1 wird der bestehende Rahmen bei einer Änderung entfernt.

## complete

Speichert, ob eine Grafik vollständig geladen ist oder nicht. Enthält den Wert `true`, wenn die Grafik geladen ist, und den Wert `false`, wenn die Grafik nicht oder nicht vollständig geladen ist.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    function BildCheck() {
     var Status = "";
     for(i = 0; i < document.images.length; ++i)
     {
      if(document.images[i].complete == true)
       Status = Status + "Grafik " + (i+1) + " geladen\n";
      else
       Status = Status + "Grafik " + (i+1) + " nicht geladen\n";
     }
     Status = Status + document.images.length + " Grafiken im Dokument";
     alert(Status);
    }
    //-->
    </script>
    </head><body>
    <img src="berthold.gif" alt="Berthold"><br>
    <img src="boris.gif" alt="Boris"><br>
    <img src="bernd.gif" alt="Bernd"><br>
    <a href="javascript:BildCheck()">Grafiken checken</a>
    </body></html>

### Erläuterung:

Das Beispiel enthält mehrere Grafiken und einen Verweis. Beim Anklicken des Verweises wird die Funktion `BildCheck()` aufgerufen, die im Dateikopf in einem Scriptbereich definiert ist. Diese Funktion ermittelt in einer for-Schleife für jede einzelne Grafik in der Datei (ermittelbar mit `document.images.length`), ob diese geladen ist (`if(document.images[i].complete == true)`) oder nicht. Das Ergebnis wird in einer Variablen `Status` gesammelt. Am Ende wird der Inhalt von `Status` mit alert() ausgegeben.

### Beachten Sie:

Die Eigenschaft `complete` wird von den Netscape-Browsern nicht mit den richtigen Werten belegt. Obwohl im vorliegenden Beispiel 2 Grafiken nicht geladen werden können, wird im Netscape 6.1 für alle Grafiken für die Eigenschaft `complete` der Wert `"true"` angegeben. Die älteren Netscape-Browser bis zur Version 4 dagegen geben für alle Grafiken in der Eigenschaft `complete` den Wert `"false"` an. Opera 5.12 und der MS Internet Explorer interpretieren diese Eigenschaft richtig.

## height

Speichert die Angabe zur Höhe eine Grafik, wie sie mit der Angabe `height=` im `<img>`-Tag möglich ist. Es wird auch dann ein Wert gespeichert, wenn die Angabe im HTML-Tag fehlt.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <img src="christa.gif" name="Christa" alt="Christa">
    <script type="text/javascript">
    <!--
    document.write(document.Christa.name + "<br>");
    document.write(document.Christa.width + " x " + document.Christa.height + " Pixel");
    //-->
    </script>
    </body></html>

### Erläuterung:

Das Beispiel enthält eine Grafik. Unterhalb davon ist ein Scriptbereich notiert. Darin wird mit document.write() der Bildname und die Angaben zu Breite und Höhe der Grafik geschrieben.

### Beachten Sie:

Im Netscape 6.1 wird in der Eigenschaft `height` der Wert `0` gespeichert, wenn das `height`-Attribut im HTML-Tag fehlt.
Das Ändern der Eigenschaft `height` ist bislang nur im MS Internet Explorer und im Netscape 6.1 möglich.

## hspace

Speichert die Angabe zum horizontalen Abstand zwischen einer Grafik und ihren nebenliegenden Elementen, wie sie mit der Angabe `hspace=` im `<img>`-Tag möglich ist. Wenn die Angabe im HTML-Tag fehlt, hat die Objekteigenschaft `hspace` den Wert 0.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <a href="javascript:alert(document.Dorian.hspace)">
    <img src="dorian.jpg" hspace="30" name="Dorian" alt="Dorian">
    </a>
    </body></html>

### Erläuterung:

Das Beispiel enthält eine Grafik, die in einen Verweis eingeschlossen ist. Beim Anklicken des Verweises wird mit alert() der Wert ausgegeben, der in der Angabe `hspace=` gespeichert ist.

### Beachten Sie:

Netscape 6.1 und Opera 5.12 interpretieren diese Angabe fehlerhaft. Im Netscape 6.1 ist stets `-1` und in Opera 5.12 `0` gespeichert.
Das Ändern der Eigenschaft `hspace` ist bislang nur im MS Internet Explorer möglich. Im Netscape 6.1 wird der horizontale Abstand entfernt.

## length

Speichert die Anzahl der Grafiken in einer Datei.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <img src="anna.jpg" alt="Anna"><br>
    <img src="dorian.gif" alt="Dorian"><br>
    <img src="christa.gif" alt="Christa"><br>
    <script type="text/javascript">
    <!--
    document.write("<hr>Seite enthält " + document.images.length + " Grafiken");
    //-->
    </script>
    </body></html>

### Erläuterung:

Das Beispiel enthält mehrere Grafiken. Am Ende steht ein Scriptbereich. Darin wird mit document.write() die Anzahl der Grafiken in die Datei geschrieben.

## lowsrc

Speichert die Angabe zur Vorab-Grafik, wie sie mit der Angabe `lowsrc=` im `<img>`-Tag möglich ist. Wenn die Angabe im HTML-Tag fehlt, enthält die Objekteigenschaft `lowsrc` keinen Wert. Wenn eine Angabe zu `lowsrc=` vorhanden ist, enthält die Objekteigenschaft bei Netscape der vollständige URI, beim MS Internet Explorer, Netscape 6 und Opera 5.12 dageben genau die Angabe, die in der Wertzuweisung an das HTML-Attribut steht.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <a href="javascript:alert(document.images[0].lowsrc)">
    <img src="franz.jpg" lowsrc="fraenzchen.jpg" alt="Fraenzschen und Franz">
    </a>
    </body></html>

### Erläuterung:

Das Beispiel enthält eine Grafik, die mit `lowsrc=` eine vorab anzuzeigende Grafik definiert, und die in einen Verweis eingeschlossen ist. Beim Anklicken des Verweises wird mit alert() der Wert ausgegeben, der in der Angabe `lowsrc=` gespeichert ist.

## name

Speichert den Namen einer Grafik, wie er mit der Angabe `name=` im `<img>`-Tag möglich ist. Wenn die Angabe im HTML-Tag fehlt, enthält die Objekteigenschaft `name` keinen Wert.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <img name="Anna" src="anna.jpg" width="271" height="265" border="0" alt="">
    <script type="text/javascript">
    <!--
      document.write("<br>" + document.images[0].name);
    //-->
    </script>
    </body></html>

### Erläuterung:

Das Beispiel enthält eine Grafik. Unterhalb davon ist ein Scriptbereich notiert. Darin wird mit document.write() der Bildname der Grafik in die Datei geschrieben.

### Beachten Sie:

Im Netscape 6.1 können Sie die Eigenschaft `name` auch ändern.

## src

Speichert die Angabe, welche Grafikdatei angezeigt wird, wie sie mit der Angabe `src=` im `<img>`-Tag möglich ist. Diese Eigenschaft lässt sich ändern. Dadurch können Sie Grafiken dynamisch durch andere ersetzen. Beachten Sie jedoch, dass Breite und Höhe ursprünglich in HTML notierten Grafik für alle dynamisch folgenden Grafiken übernommen werden. Um verzerrungsfreie Effekte zu erzielen, sollten also alle Grafiken, die einander dynamisch ersetzen, die gleiche Höhe und Breite haben.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <img src="hans.gif" width="400" height="300" alt="Hans">
    <script type="text/javascript">
    <!--
     var b = new Array();
     b[0] = new Image(); b[0].src = "holger.gif";
     b[1] = new Image(); b[1].src = "hilmar.gif";
     b[2] = new Image(); b[2].src = "heiner.gif";
     b[3] = new Image(); b[3].src = "hans.gif";
     var i = 0;
     function Animation()
     {
      if(i > 3) i = 0;
      document.images[0].src = b[i].src;
      i = i + 1;
      window.setTimeout("Animation()",1000);
     }
     window.setTimeout("Animation()",1000);
    //-->
    </script>
    </body></html>

### Erläuterung:

Das Beispiel enthält eine Grafik namens `ingo.gif`. Unterhalb davon ist ein Scriptbereich notiert, der dafür sorgt, dass die Grafik sich automatisch jede Sekunde in eine andere Grafik verwandelt. Dazu wird zunächst ein Array namens `b` notiert. Danach werden vier Elemente des Arrays `b` bestimmt. In allen vier Fällen handelt es sich um neue Grafikobjekte. Jedem der neuen Grafikobjekte wird mit der Eigenschaft `src` eine Grafikdatei zugewiesen. Beachten Sie, dass auch die Datei `hans.gif` wieder dabei ist, obwohl diese bereits angezeigt wird. Da sie in die Animation integriert werden soll, muss für sie aber trotzdem noch mal ein eigenes neues Grafikobjekt erzeugt werden.

Innerhalb der Funktion `Animation()`, die unterhalb der Funktion zum eersten Mal aufgerufen wird. wird das jeweils aktuelle Bild durch ein anderes ersetzt. Das geschieht durch Zuweisng von `b[i].src` an `document.images[0].src`. Da `b[i]` abhängig von der Variablen `i` ist, die bei jedem Funktionsaufruf verändert wird, wird jedes mal ein anderes der vier Bilder angezeigt. Am Ende ruft sich die Funktion `Animation()` selbst wieder auf. So entsteht der Endlos-Effekt. Der Aufruf ist in einen setTimeout()-Aufruf eingebunden, der den nächsten Aufruf jeweils um 1000 Millisekunden, also um eine Sekunde, verzögert.

### Beachten Sie:

Im Internet Explorer und im Netscape 6 können Sie auch unterschiedlich große Grafiken verwenden. In diesem Fall sollten Sie die Angaben zur Größe der Grafik weglassen bzw. für die Höhe die Eigenschaft height und für die Weite die Eigenschaft width dynamisch ändern.

## vspace

Speichert die Angabe zum vertikalen Abstand zwischen einer Grafik und den Elementen oberhalb und unterhalb davon, wie sie mit der Angabe `vspace=` im `<img>`-Tag möglich ist. Wenn die Angabe im HTML-Tag fehlt, hat die Objekteigenschaft `vspace` den Wert 0.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <a href="javascript:alert(document.Ina.vspace)">
    <img src="ina.jpg" vspace="8" name="Ina" alt="Ina">
    </a>
    </body></html>

### Erläuterung:

Das Beispiel enthält eine Grafik, die in einen Verweis eingeschlossen ist. Beim Anklicken des Verweises wird mit alert() der Wert ausgegeben, der in der Angabe `vspace=` gespeichert ist.

### Beachten Sie:

Netscape 6.1 und Opera 5.12 interpretieren diese Angabe fehlerhaft. Im Netscape 6.1 ist stets `-1` und in Opera 5.12 `0` gespeichert.
Das Ändern der Eigenschaft `vspace` ist bislang nur im MS Internet Explorer möglich. Im Netscape 6.1 wird der vertikale Abstand entfernt.

## width

Speichert die Angabe zur Breite eine Grafik, wie sie mit der Angabe `width=` im `<img>`-Tag möglich ist. Es wird auch dann ein Wert gespeichert, wenn die Angabe im HTML-Tag fehlt.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <img src="jochen.jpg" name="Jochen" alt="Jochen">
    <script language="JavaScript" type="text/javascript">
    <!--
    document.write(document.Jochen.name + "<br>");
    document.write(document.Jochen.width + " x " + document.Jochen.height + " Pixel");
    //-->
    </script>
    </body></html>

### Erläuterung:

Das Beispiel enthält eine Grafik. Unterhalb davon ist ein Scriptbereich notiert. Darin wird mit document.write() der Bildname und die Angaben zu Breite und Höhe der Grafik geschrieben.

### Beachten Sie:

Im Netscape 6.1 wird in der Eigenschaft `width` der Wert `0` gespeichert, wenn diese Angabe im HTML-Tag fehlt.
Das Ändern der Eigenschaft `width` ist bislang nur im MS Internet Explorer und im Netscape 6.1 möglich.

## handleEvent()

Übergibt ein Ereignis an ein Element, das in der Lage ist, auf das Ereignis zu reagieren. Funktioniert genau so wie handleEvent() beim window-Objekt (nähere Informationen siehe dort).

| embeds
| options

© 2001 selfhtml@teamone.de