JavaScript/DOM/Document/applets

Aus SELFHTML-Wiki
< JavaScript‎ | DOM‎ | Document
Wechseln zu: Navigation, Suche

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 .length in einer Datei.

Verwendung

Ü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:

Beispiel
// Schema 1:
  document.applets[#].Methode();

// Schema 2:
  document.applets.AppletName.Methode();

// Schema 3:
  document.applets["AppletName"].Methode();

// Schema 4:
  document.AppletName.Methode();

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 wievielte 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 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.)

Teil 1 - Quellcode eines Java-Applets
  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();
      }

  }

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.


Teil 2 - HTML-Datei mit Java-Applet und JavaScript-Zugriff
<html>
<head>
  <title>Test</title>
</head>
<body>

  <applet code="HelloWorld" name="Hallo" width="200" height="25"></applet>

  <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>

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.