| # applets
| applets: Allgemeines zur Verwendung Zugriff auf Code in Java-Applets ### Eigenschaft: length (Anzahl Java-Applets)

## applets: Allgemeines zur Verwendung

Mit dem Objekt `applets`, das in der JavaScript-Objekthierarchie unterhalb des document-Objekts liegt, haben Sie Zugriff auf Java-Applets, die in einer HTML-Datei definiert sind. Die einzige gewöhnliche JavaScript-Objekteigenschaft des `applet`-Objekts ist die Anzahl der Java-Applets in einer Datei.

Über das `applets`-Objekts haben Sie jedoch auch Zugriff auf Code in Java-Applets. Dazu müssen Sie das gewünschte Java-Applet ansprechen. Es stehen vier Arten zur Verfügung, mit JavaScript ein bestimmtes Java-Applet anzusprechen:

### Schema 1:

    document.applets[#].Methode();

### Schema 2:

    document.applets.AppletName.Methode();

### Schema 3:

    document.applets["AppletName"].Methode();

### Schema 4:

    document.AppletName.Methode();

### Erläuterung:

Java-Applets können Sie auf drei Arten ansprechen:

- mit einer Indexnummer (wie in Schema 1)
  Bei Verwendung von Indexnummern geben Sie `document.applets` an und dahinter in eckigen Klammern, das wie vielte Java-Applet in der Datei Sie meinen. Beachten Sie, dass der Zähler bei 0 beginnt, d.h. das erste Java-Applet sprechen Sie mit `applets[0]` an, das zweite Java-Applet mit `applets[1]` usw. Beim Zählen gilt die Reihenfolge, in der die `<applet>`-Elemente in der Datei notiert sind.
- mit Namen des Java-Applets (wie in Schema 2)
  Dabei wird das Java-Applet als Unterobjekt von `document.applets` angesprochen. Notieren Sie hinter `document.applets` einen Punkt zum Ansprechen des Unterobjekts und direkt dahinter den Namen, den Sie bei der Definition des Java-Applets im einleitenden `<applet>`-Tag im Attribut `name` angegeben haben.
- mit Namen des Java-Applets als Indexnamen (wie in Schema 3)
  Diese Art ist eine zu Schema 2 äquivalente Schreibweise, denn in JavaScript ist das Ansprechen von Unterobjekten über `objekt.unterobjekt` gleichwertig zu `objekt["unterobjekt"]`. Notieren Sie wie beim Ansprechen mit Indexnummer hinter document.applets eckige Klammern. Innerhalb der eckigen Klammern notieren Sie in Anführungszeichen den Namen, den Sie bei der Definition des Java-Applets im einleitenden `<applet>`-Tag im Attribut `name` angegeben haben. Diese Schreibweise ist vor allem zum Zugriff auf Java-Applets nützlich, deren Namen Sonderzeichen enthalten, welche den Zugriff nach Schema 2 unmöglich machen. Sie können zwischen den eckigen Klammern auch eine String-Variable notieren, die den Ankernamen enthält.
- mit dem Namen des Java-Applets direkt (wie in Schema 4)
  Dabei geben Sie mit `document.AppletName` den Namen an, den Sie bei der Definition des Java-Applets im einleitenden `<applet>`-Tag im Attribut `name` angegeben haben.

## Beachten Sie:

Gemäß dem HTML-spezifischen DOM greift z.B. `document.applets.Ankername` auf das `applet`- bzw. `object`-Elementobjekt zu, mit dem das Applet eingebunden ist. Auf diese Weise können Sie verschiedene Eigenschaften des Elementobjekts ansprechen und nutzen, die in der Referenz zum applet-Elementobjekt und object-Elementobjekt aufgelistet sind.

## Zugriff auf Code in Java-Applets

Sie können direkt auf den Code eines laufenden Java-Applets zugreifen. Dazu müssen Sie jedoch den Quellcode des Java-Applets kennen (Dateien `*.java` vor dem Compilieren mit dem Java-Compiler).

Das folgende Beispiel zeigt das Prinzip. Nähere Informationen zur Vorgehensweise und zum Konzept des "lebendigen Drahts" ("LiveWire") zwischen JavaScript und Java finden Sie auf den Entwicklerseiten von Netscape (archivierte Version) (Anmerkung: AOL als Besitzer von Netscape hat den Originalserver im Oktober 2004 abgeschaltet. Im Februar 2005 schloss die Mozilla Foundation mit AOL eine Vereinbarung, um die Inhalte bald wieder verfügbar zu machen. Bis dahin führt dieser Link zu einer Ende 2003 archivierten Version.)

### Beispiel Teil 1 - Quellcode eines Java-Applets:

Anzeigebeispiel: So sieht's aus

    import java.awt.Graphics;
    import java.applet.Applet;

    public class HelloWorld extends Applet
    {
     String myString ="Das ist mein Hallo-Text";

     public void paint(Graphics g)
     {
      g.drawString(myString, 25, 20);
     }
     public void setString(String aString)
     {
      myString = aString;
      repaint();
     }
    }

### Beispiel Teil 2 - HTML-Datei mit Java-Applet und JavaScript-Zugriff:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <applet code="HelloWorld" name="Hallo" width="200" height="25">
    </applet><br>
    <form name="Eingabe" action="">
    <input type="text" name="Text">
    <input type="button" value="Test"
    onclick="document.Hallo.setString(document.Eingabe.Text.value)">
    </form>
    </body></html>

### Erläuterung:

Im ersten Teil des Beispiels finden Sie den Quellcode eines Java-Applets, das einen Text am Bildschirm ausgibt. Auf den Quellcode wird hier nicht näher eingegangen. Achten Sie lediglich auf die letzte Methode, die in dem Quelltext definiert wird:
`public void setString(String aString)`
Damit wird der definierte Text letztendlich am Bildschirm ausgegeben.

Im zweiten Teil des Beispiels wird angenommen, dass der Quellcode aus dem ersten Teil des Beispiels mit dem Java-Compiler zu einem Java-Applet mit dem Namen HelloWorld.class compiliert wurde. Dieses Java-Applet wird in der HTML-Datei mit dem `<applet>`-Tag eingebunden. Dabei erhält das Applet mit dem `name`-Attribut den Namen `"Hallo"`.

Unterhalb davon wird ein Formular mit einem Eingabefeld und einem Button definiert. In dem Eingabefeld lässt sich ein Text eingeben. Beim Klick auf den Button wird der eingegebene Text an das Java-Applet "gesendet", und zwar so, dass der Text, den das Applet anzeigt, durch den eingegebenen Text ersetzt wird.

Dazu wird das Applet mit `document.Hallo` angesprochen. Dahinter wird keine JavaScript-Methode notiert, sondern direkt eine Methode aus dem Quellcode des Java-Applets, nämlich die Methode `setString()`. Diese Methode erwartet als Parameter eine Zeichenkette (siehe Quellcode des Java-Applets). Das JavaScript übergibt als Zeichenkette den Wert aus dem Eingabefeld des Formulars.

Der Umgang mit Formularen in JavaScript wird beim forms-Objekt und seinen Unterobjekten näher beschrieben.

### Beachten Sie:

Opera bis Version 6 und der Internet Explorer 5.0 Macintosh Edition interpretierten dieses Beispiel nicht.

## length

Speichert, wie viele Java-Applets eine HTML-Datei enthält.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <applet code="HelloWorld.class" name="Hallo" width="150" height="25">
    </applet>
    <script type="text/javascript">
    document.write("Gefunden wurden " + document.applets.length + " Java-Applets")
    </script>
    </body></html>

### Erläuterung:

Mit `document.applets.length` können Sie die Anzahl der Java-Applets in einer HTML-Datei ermitteln. Das Beispiel enthält zunächst HTML-Text mit einem Java-Applet und schreibt am Ende mit document.write() dazu, wie viele Applets in der Datei gefunden wurden.

| forms
| anchors

© 2007 Impressum