Galileo Computing <openbook>
Galileo Computing - Programming the Net
Galileo Computing - Programming the Net


JavaScript von Christian Wenz
Browserübergreifende Lösungen
JavaScript - Zum Katalog
gp Kapitel 2 Vorbereitung
  gp 2.1 Verwendung von <SCRIPT>
  gp 2.2 JavaScript-Links
  gp 2.3 Event-Handler
  gp 2.4 JavaScript-Entities

Kapitel 2 Vorbereitung

Take three months to prepare your machines and
three months to complete your siege engineering.
– Sun Tzu, The Art Of War

In diesem Kapitel erfahren Sie, wie JavaScript-Code in HTML-Dokumente eingebunden wird. Besondere Beachtung verdienen hierbei die Unterschiede zwischen den einzelnen Browsern.

JavaScript-Kommandos können an mehreren Stellen einer HTML-Datei untergebracht werden:

gp  Zwischen den Tags <SCRIPT> und </SCRIPT>
gp  In einer externen Datei
gp  In Form eines HTML-Links
gp  Als Parameter von HTML-Tags

In den folgenden Abschnitten werden die einzelnen Möglichkeiten der Reihe nach vorgestellt und beleuchtet.

Als Beispiel hierzu dient die Anweisung document.write("The weather means the seasons"), welche den Text "The weather means the seasons" ausgibt. Warum dieser Befehl so funktioniert, erfahren Sie in den nächsten Kapiteln; fürs erste müssen Sie mir einfach vertrauen.


Galileo Computing

2.1 Verwendung von <SCRIPT>  downtop

Die naheliegenste Methode, JavaScript-Befehle auszuführen, besteht darin, den <SCRIPT>-Tag zu verwenden. Folgender Code sorgt dafür, dass »The weather means the seasons« ausgegeben wird:

<SCRIPT>
document.write("The weather means the seasons")
</SCRIPT>

Befehle werden in JavaScript untereinander – einer pro Zeile – dargestellt. Wenn Sie mehrere Kommandos in einer Zeile unterbringen wollen, müssen Sie die Anweisungen durch ein Semikolon voneinander trennen. Im Gegensatz zu anderen Programmiersprachen (beispielsweise Java) muss aber keineswegs jedes Kommando mit einem Strichpunkt enden.

In der ersten Version der JavaScript-Sprachspezifikation war das Semikolon am Ende jeder Anweisung strikt vorgeschrieben. Inzwischen wurde aber davon Abstand genommen, und jeder JavaScript-Programmierer hat seinen eigenen Stil. Ich verzichte auf optionale Strichpunkte, es ist Ihnen aber natürlich freigestellt, sich einen anderen Stil anzueignen – insbesondere, wenn Sie bereits Erfahrungen in einer Programmiersprache gesammelt haben, bei der die Strichpunkte nicht optional sind (z. B. Java).

Die beiden folgenden Anweisungen sind also äquivalent. Einmal stehen die beiden Befehle in verschiedenen Zeilen, einmal in einer Zeile.

<SCRIPT>
document.write("The weather ")
document.write("means the seasons")
</SCRIPT>

und

<SCRIPT>
document.write("The weather ");
document.write("means the seasons")
</SCRIPT>

JavaScript-Code wird hierbei vom JavaScript-Interpreter des verwendeten Browsers ausgeführt. Betrachten Sie zum Beispiel folgendes HTML-Dokument:

<HTML>
<HEAD>
<TITLE>JavaScript</TITLE>
</HEAD>
<BODY>
<SCRIPT>
document.write("The weather means the seasons")
</SCRIPT>
</BODY>
</HTML>

Wenn es vom Browser interpretiert worden ist, und dieser Browser JavaScript unterstützt, verhält es sich so wie folgendes HTML-Dokument:

<HTML>
<HEAD>
<TITLE>JavaScript</TITLE>
</HEAD>
<BODY>
The weather means the seasons
</BODY>
</HTML>

Nehmen es Sie mir nicht übel, wenn die ersten Beispiele in diesem Kapitel nicht unbedingt die breite Funktionspalette von JavaScript demonstrieren.


Galileo Computing

2.1.1 Das LANGUAGE-Attribut  downtop

Das obige Beispiel ist streng genommen etwas unsauber. Der <SCRIPT>-Tag eignet sich auch für andere Programmiersprachen, die in HTML-Dokumente eingebettet werden können, beispielsweise Visual Basic Script (VBScript) oder JScript. Dazu dient das Attribut LANGUAGE des <SCRIPT>-Tags. Ist es nicht gesetzt – wie im obigen Beispiel – so wird angenommen, dass die zwischen den Tags stehenden Kommandos in JavaScript verfasst wurden (deswegen funktioniert obiges Beispiel auch). Aber um auf Nummer sicher zu gehen – es könnte ja sein, dass eine neue Version des Microsoft Internet Explorer als Standardsprache VBScript annimmt – schreiben wir:

<HTML>
<HEAD>
<TITLE>JavaScript</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
document.write("The weather means the seasons")
</SCRIPT>
</BODY>
</HTML>
gp  Wie Sie im vorherigen Kapitel erfahren haben, gibt es mehrere Versionen von JavaScript. Sie können im LANGUAGE-Attribut auch explizit eine der Versionen angeben. Der folgende Code wird nur von Browsern ausgeführt, die JavaScript Version 1.1 unterstützen (das sind insbesondere der Netscape Navigator ab Version 3 und der Microsoft Internet Explorer ab Version 4):
<HTML>
<HEAD>
<TITLE>JavaScript</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript1.1">
document.write("The weather means the seasons")
</SCRIPT>
</BODY>
</HTML>

Ältere Browser, beispielsweise der Internet Explorer 3, ignorieren den JavaScript-Befehl und geben nichts aus.

Zur Zeit der Drucklegung (Juli 2000) sind die in Tabelle 2.1 aufgeführten Parameter gültig.

Tabelle 2.1  Die gültigen Parameter für <SCRIPT LANGUAGE="…">
Parameter Bedeutung
JavaScript Jeder Browser, der JavaScript unterstützt
JavaScript 1.1 Alle Browser, die mindestens JavaScript Version 1.1 unterstützen (ab NN3, IE4)
JavaScript 1.2 Alle Browser, die mindestens JavaScript-Version 1.2 unterstützen (ab NN4, IE5)
JavaScript 1.3 Alle Browser, die mindestens JavaScript-Version 1.3 unterstützen (ab Netscape Navigator 4.06, IE5)
JavaScript 1.4 Netscape 6
JavaScript 1.5 Netscape 6

Mit der folgenden HTML-Seite kann man überprüfen, welche JavaScript-Versionen der jeweilige Browser unterstützt:

<HTML>
<HEAD>
<TITLE>JavaScript</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
document.write("Der Browser unterstützt JavaScript<HR>")
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript1.1">
document.write("Der Browser unterstützt JavaScript v1.1<HR>")
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript1.2">
document.write("Der Browser unterstützt JavaScript v1.2<HR>")
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript1.3">
document.write("Der Browser unterstützt JavaScript v1.3<HR>")
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript1.4">
document.write("Der Browser unterstützt JavaScript v1.4<HR>")
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript1.5">
document.write("Der Browser unterstützt JavaScript v1.5<HR>")
</SCRIPT>
</BODY>
</HTML>

In Abbildung 2.1 sehen Sie beispielsweise, was der Netscape Navigator 4.75 ausgibt.

Abbildung 2.1  Die vom Netscape Navigator 4.75 unterstützten JavaScript-Versionen
Abbildung

gp  Beachten Sie bei obigem Beispiel, dass man mit document.write() insbesondere auch HTML-Code, in diesem Fall den <HR>-Tag für eine horizontale Linie, ausgeben kann.

In Tabelle 2.2 sehen Sie, welche Parameter ausgewählte Browserversionen erkennen bzw. unterstützen:

Tabelle 2.2  Die von ausgewählten Browsern unterstützten Parameter <SCRIPT LANGUAGE="…">
Browser Unterstützte Parameter
Netscape 4.00-4.05 JavaScript1.0-JavaScript1.2
Netscape 4.06-4.76 JavaScript1.0-JavaScript1.3
Netscape 6 JavaScript1.0-JavaScript1.5
Internet Explorer 4 JavaScript1.0-JavaScript1.2
Internet Explorer 5 JavaScript1.0-JavaScript1.3
Internet Explorer 5.5 JavaScript1.0-JavaScript1.3

Durch die Verwendung spezieller LANGUAGE-Attribute können Sie Fehlermeldungen vermeiden, die bei der Verwendung von zu modernen JavaScript-Kommandos erscheinen würden. Wenn Sie also Sprachelemente von JavaScript verwenden, die erst ab Version 1.1 unterstützt werden, könnten Sie das LANGUAGE-Attribut auf JavaScript1.1 setzen; ältere Browser ignorieren dann die Befehle völlig.

gp  Das stimmt leider nicht immer. Einige Versionen des Netscape Navigator 3 beispielsweise haben einen Bug und versuchen, auch JavaScript-Blöcke mit LANGUAGE="JavaScript1.2" und LANGUAGE="JavaScript1.3" zu interpretieren. Auch der Internet Explorer führt manchmal Code aus, der nicht für ihn bestimmt ist.

Galileo Computing

2.1.2 Browser ohne JavaScript  downtop

So schön ein Programm auch auf dem eigenen Rechner laufen mag – es kommt darauf an, dass es beim Kunden läuft, und bei allen Besuchern (nun gut, sagen wir, bei den meisten Besuchern) der Website. In vielen Firmennetzwerken ist es beispielsweise so, dass JavaScript aus Sicherheitsgründen nicht aktiviert werden darf. Die Beispiele von oben sehen dann folgendermaßen aus.

Abbildung 2.2  Die Ausgabe bei deaktiviertem JavaScript: Gähnende Leere
Abbildung

Bei ganz alten Browsern ist es noch schlimmer, zuweilen sieht man sogar den JavaScript-Code. Sie können sich aber hier mit einem kleinen Trick behelfen: Mit <!-- wird ein HTML-Kommentar eingeleitet; alles dahinter wird vom HTML-Interpreter ignoriert, jedoch nicht vom JavaScript-Interpreter! Es empfiehlt sich also, JavaScript-Code durch folgenden Befehl einzuleiten:

<SCRIPT LANGUAGE="JavaScript"><!--

Nun stellt sich die Frage, wie der HTML-Kommentar beendet wird. Probieren Sie einmal die einfachste Variante aus, nämlich einfach ein Kommentarende-Tag (-->) vor dem </SCRIPT>:

<HTML>
<HEAD>
<TITLE>JavaScript</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript"><!--
document.write("The weather means the seasons")
--></SCRIPT>
</BODY>
</HTML>

Wenn Sie diese Seite im Browser laden, sollten Sie eine Fehlermeldung erhalten. Der Grund: Der JavaScript-Interpreter interpretiert --> als JavaScript-Befehl und liefert eine Fehlermeldung.

Abbildung 2.3  Fehlermeldung des Netscape Navigator
Abbildung

Aber auch hier gibt es einen kleinen Trick, mit dem Sie dieses Hindernis aus dem Weg räumen können. Mit // leitet man einen Kommentar im JavaScript-Code ein. Die Verwendung von Kommentaren ist bei der Programmierung sehr wichtig, damit man auch Wochen später noch weiß, was man damals eigentlich beabsichtigt hat, und damit auch andere Menschen mit dem Code arbeiten können. Es gibt zwei Arten von Kommentaren:

gp  //: Hiermit wird ein einzeiliger Kommentar eingeleitet; alles hinter den beiden Querstrichen in der jeweiligen Zeile wird vom JavaScript-Interpreter ignoriert.
gp  /* und */: Hiermit wird ein mehrzeiliger Kommentar eingeleitet; alles nach /* wird vom JavaScript-Interpreter ignoriert, bis die Zeichenfolge */ kommt und den Kommentar abschließt.

Im folgenden Listing sehen Sie Beispiele für Kommentare:

<HTML>
<HEAD>
<TITLE>JavaScript</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
// Hier wird auf generelle JavaScript-Unterstützung geprüft
document.write("Der Browser unterstützt JavaScript<BR>")
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript1.1">
/* Hier geht es um JavaScript 1.1 */
document.write("Der Browser unterstützt JavaScript v1.1<BR>")
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript1.2">
// JavaScript 1.2 wird überprüft
// und zwar gründlich
document.write("Der Browser unterstützt JavaScript v1.2<BR>")
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript1.3">
/* JavaScript 1.3 wurde
   mit Netscape Navigator 4.06 eingeführt */
document.write("Der Browser unterstützt JavaScript v1.3<BR>")
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript1.4">
document.write("Der Browser unterstützt JavaScript v1.4<HR>")
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript1.5">
document.write("Der Browser unterstützt JavaScript v1.5<HR>")
</SCRIPT>
</BODY>
</HTML>

Kommen wir zum ursprünglichen Problem zurück. Der Browser gibt eine Fehlermeldung aus, weil --> als JavaScript-Code interpretiert wird und nicht als HTML-Element. Wenn dem --> jedoch ein // vorangestellt wird, ignoriert der JavaScript-Interpreter diesen Code, der HTML-Interpreter jedoch stellt fest, dass der Kommentar zu Ende ist. Folgender Code wird von Browsern, die JavaScript unterstützen, ausgeführt; Browser, die kein JavaScript unterstützen oder bei denen JavaScript deaktiviert ist, sehen einen HTML-Kommentar, ignorieren das Innere und geben folglich nichts aus, auch keinen puren JavaScript-Code.

<HTML>
<HEAD>
<TITLE>JavaScript</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript"><!--
document.write("The weather means the seasons")
//--></SCRIPT>
</BODY>
</HTML>

Browser und
Textausgabe

Sie sehen an den obigen Beispielen, dass es relativ einfach ist, bei Browsern, die JavaScript unterstützen, einen Text auszugeben. Der andere Weg ist aber auch möglich. Es gibt hierfür (ab Netscape Navigator 3 bzw. Internet Explorer 3) einen besonderes HTML-Element, <NOSCRIPT>, das so ähnlich wie <NOFRAMES> funktioniert. Es gibt nun folgende denkbare Szenarien:

gp  Der Browser unterstützt kein JavaScript, egal, ob der <NOSCRIPT>-Tag bekannt ist oder nicht, er wird notfalls ignoriert, und die darauf folgenden HTML-Elemente werden interpretiert (bzw. der Inhalt wird angezeigt).
gp  Der Browser unterstützt JavaScript und ist auch eingeschaltet. Dann wird alles, was zwischen <NOSCRIPT> und </NOSCRIPT> steht, nicht dargestellt.
gp  Der Browser unterstützt JavaScript, es ist jedoch ausgeschaltet. Dann wird auch all das, was zwischen <NOSCRIPT> und </NOSCRIPT> steht, dargestellt.
<HTML>
<HEAD>
<TITLE>JavaScript</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript"><!--
document.write("The weather means the seasons")
//--></SCRIPT>
<NOSCRIPT>
Ihr Browser kann mit JavaScript nichts anfangen,
oder es ist ausgeschaltet!
</NOSCRIPT>
</BODY>
</HTML>
gp  Denken Sie immer auch an diejenigen Besucher, die JavaScript deaktiviert haben oder deren Browser (man denke nur an die eingeschränkten Browser von Handhelds) kein JavaScript unterstützt. Erstellen Sie notfalls eine Version Ihrer Website, die auch ohne JavaScript funktioniert.

Galileo Computing

2.1.3 Externe Dateien  downtop

Wenn Sie später einmal JavaScript-Programme schreiben, die auf mehreren unterschiedlichen Seiten benötigt werden, wäre es eigentlich ziemlich töricht, dasselbe Skript in mehrere Seiten zu kopieren – der Aufwand bei Änderungen am Skript wäre beträchtlich, da mehrere Dateien geöffnet und geändert werden müssten.

Es gibt hier auf den ersten Blick einen Ausweg, der aber auf den zweiten Blick auch seine Nachteile hat. Zuerst zur grauen Theorie: Man kann beim <SCRIPT>-Tag im Attribut SRC den Namen einer externen Datei mit JavaScript-Kommandos angeben. Als Dateiendung hat sich hierbei .js durchgesetzt. Es empfiehlt sich, für alle externen Dateien ein eigenes Verzeichnis anzulegen, damit diese alle gesammelt an einem zentralen Ort zu finden sind.

Folgende Datei sei auf dem Webserver im virtuellen Verzeichnis js unter dem Namen weather.js gespeichert:

//erste externe JavaScript-Datei
document.write("The weather means the seasons")

Sie wird folgendermaßen in ein HTML-Dokument eingebunden, um dieselbe Wirkung zu erzielen wie das Dokument von vorher:

<HTML>
<HEAD>
<TITLE>JavaScript</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript" SRC="/js/weather.js">
</SCRIPT>
</BODY>
</HTML>

Natürlich kann auch hier das LANGUAGE-Attribut gesetzt werden. Bei dem folgenden Dokument wird nur etwas ausgegeben, wenn der Browser JavaScript Version 1.1 unterstützt:

<HTML>
<HEAD>
<TITLE>JavaScript</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript1.1" SRC="/js/weather.js">
</SCRIPT>
</BODY>
</HTML>

Dieses Vorgehen birgt aber auch einen kleinen Fallstrick: Probieren Sie doch einmal Folgendes in Ihrem Browser aus:

<HTML>
<BODY>
<SCRIPT LANGUAGE="JavaScript" SRC="/js/weather.js"><!--
document.write "<BR>Invincibility is in oneself,
vulnerability is in the opponent"
//--></SCRIPT>
</BODY>
</HTML>
Abbildung 2.4  Der Text wird nur einmal angezeigt
Abbildung

Das Ergebnis sehen Sie in Abbildung 2.4: Der Inhalt des <SCRIPT>-Elements wird ignoriert. Der Grund: ist das SRC-Attribut des <SCRIPT>-Tags gesetzt, wird eingeschlossener JavaScript-Code nicht betrachtet; ist SRC nicht gesetzt, so wird der eingeschlossene Code ausgeführt. Um also beide Sätze auszugeben, muss das HTML-Dokument folgendermaßen abgeändert werden:

<HTML>
<BODY>
<SCRIPT LANGUAGE="JavaScript" SRC="/js/weather.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript"><!--
document.write "<BR>Invincibility is in oneself,
vulnerability is in the opponent"
//--></SCRIPT>
</BODY>
</HTML>
gp  Obwohl externe Dateien sehr praktisch und auch recht weit verbreitet sind, haben sie einen großen Nachteil, den viele gar nicht kennen: Der Netscape Navigator 2 kann mit dem SRC-Attribut nichts anfangen, und der Internet Explorer 3 hat immer wieder Probleme damit (und im lokalen Betrieb, also ohne Webserver, funktioniert es überhaupt nicht). Die ersten Versionen des Internet Explorer 3 haben dieses Feature gar nicht unterstützt, während es in den Versionen 3.02 und 3.03 hin und wieder funktioniert. Es hilft manchmal, eine vollständige URL anzugeben (also SRC="http://www.ihrefirma.de/skript.js"), aber auch das funktioniert hin und wieder nicht. Setzen Sie also Ihr Skript für den Internet Explorer 3 in das HTML-Dokument selbst, oder testen Sie es intensiv. Kontaktieren Sie außerdem den Betreiber Ihres Webservers; er muss ihn so konfigurieren, dass Dateien mit der Endung .js mit dem MIME-Typ application/x-javascript verknüpft werden.

Sollten in diesem Kapitel externe Dateien verwendet werden, so dient das in der Regel der Übersichtlichkeit des Codes. Natürlich muss verhindert werden, dass ältere Browser eine Fehlermeldung ausgeben.


Galileo Computing

2.2 JavaScript-Links  downtop

JavaScript-Befehle werden oft aufgrund von Benutzereingaben ausgeführt. Eine Möglichkeit besteht darin, aufgrund eines Mausklicks eine Aktion zu starten. Bevor ein paar Beispiele vorgestellt werden, muss noch ein neuer JavaScript-Befehl eingeführt werden. Mit window.alert("Invincibility is in oneself, vulnerability is in the opponent") wird ein modales Fenster ausgegeben, das den Text »Invincibility is in oneself, vulnerability is in the opponent« anzeigt. Je nach verwendetem Browser sieht das etwas anders aus, in Abbildung 2.5 sehen Sie die Darstellung im Netscape Navigator 4.

Abbildung 2.5  Ein Warnfenster mit dem Netscape Navigator
Abbildung

Protokolle

HTML-Links können auf URLs mit den verschiedensten Protokollen verweisen, so zum Beispiel http:, ftp:, news: oder mailto:. Nun kommt ein weiteres Protokoll hinzu, welches jedoch lediglich im Zusammenhang mit JavaScript eine Bedeutung hat: javascript:. Folgender Link gibt »I still have a dream« in einem modalen Fenster aus, wenn man darauf klickt:

<A HREF="javascript:window.alert('Invincibility 
is in oneself, vulnerability is in the opponent')">

Beachten Sie die Anführungszeichen. In JavaScript ist es prinzipiell egal, ob Sie einfache oder doppelte Anführungszeichen verwenden – Hauptsache, Sie hören so auf, wie Sie angefangen haben.

Folgendes ist also völlig korrekt:

document.write("The weather means the seasons")
document.write('<BR>Invincibility is in oneself,
vulnerability is in the opponent')

Falsch ist dagegen:

document.write("The weather means the seasons ')
document.write('<BR>Invincibility is in oneself,
vulnerability is in the opponent")

Obwohl man mit dem Pseudo-Protokoll javascript: bequem JavaScript-Befehle aufrufen kann, gibt es doch einen kleinen Nachteil: Browser, die kein JavaScript unterstützen, geben eine Fehlermeldung aus. Im folgenden Abschnitt wird diesem Missstand abgeholfen.


Galileo Computing

2.3 Event-Handler  downtop

Ohne anderen Kapiteln allzu sehr vorgreifen zu wollen – wenn Sie bestimmte Aktionen tätigen, beispielsweise die Maus bewegen oder auf einen Link klicken, tritt JavaScript-intern ein sogenanntes Ereignis (engl. event) ein. Manche dieser Ereignisse können Sie mit JavaScript abfangen und darauf reagieren. Dazu benötigen Sie Event-Handler, die als Attribute mancher HTML-Tags in den HTML-Code eingebunden werden. Eine vollständige Auflistung aller Event-Handler finden Sie in der Referenz; davor werden die wichtigsten Handler in den jeweiligen Kapiteln anhand eines Beispiels vorgestellt.

Grundsätzlich gilt Folgendes: Ein Event-Handler beginnt stets mit on. Der Event-Handler, der zuständig ist, wenn auf einen Link geklickt wird, heißt onClick. Wenn folgender Link angeklickt wird, wird ein modales Fenster geöffnet:

<A HREF="irgendwohin.html" onClick="alert('Invincibility is in
oneself, vulnerability is in the opponent')">Sun Tzu</A>

Vom Prinzip her wunderbar – Browser, die JavaScript unterstützen, führen den Code aus, folgen danach aber dem Link (in späteren Kapiteln dazu mehr). Ältere Browser »sehen« nur den Link und würden versuchen, das Ziel des Links aufzurufen. Das ist aber in der Regel nicht erwünscht. Das HREF-Attribut des Links muss gesetzt werden, sonst wird er nicht angezeigt. Es gibt aber eine Möglichkeit, einen Link anzugeben, der keine neue Seite lädt:

gp  <A HREF="#" onClick="alert('Invincibility is in oneself,
vulnerability
is in the opponent')">Sun Tzu</A>

Diesen Trick sollten Sie sich gut merken!


Galileo Computing

2.4 JavaScript-Entities  toptop

Die letzte Möglichkeit, um JavaScript-Code in das HTML-Dokument einzubetten, wird sehr selten verwendet, was unter anderem auch daran liegt, dass hier nur Werte von HTML-Attributen gesetzt werden können – und es nur mit dem Netscape Navigator funktioniert. Sie kennen bereits HTML-Entities, die mit & beginnen und ; enden. Ein Beispiel ist die HTML-Entity für Ä, &Auml;. JavaScript-Entities sind ganz ähnlich aufgebaut: sie beginnen mit &, enden mit ; und dazwischen steht ein JavaScript-Ausdruck. Für dieses Beispiel wird ein weiteres neues JavaScript-Kommando (genauer: Objekteigenschaft, aber dazu später mehr) eingeführt: location.protocol gibt das verwendete Protokoll der aktuellen Seite vor, also beispielsweise file: bei lokalen Dateien und http: bei Dateien aus dem World Wide Web. In dem folgenden Dokument wird das VALUE-Attribut eines Texteingabefelds auf den Wert von location.protocol gesetzt. Die JavaScript-Entity heißt &location.protocol; – beachten Sie insbesondere, dass der JavaScript-Ausdruck in geschweifte Klammern eingeschlossen werden muss!

<HTML>
<HEAD>
<TITLE>JavaScript-Entities</TITLE>
</HEAD>
<BODY>
<FORM>
Protokoll: <INPUT TYPE="TEXT" VALUE="&{location.protocol};">
</FORM>
</BODY>
</HTML>
Abbildung 2.6  HTML-Attribute setzen mit Entities
Abbildung






1    Der Tag oder das Tag? Manche Autoren bevorzugen »das Tag«, um eine eindeutige Abgrenzung vom (Wochen-)Tag zu gewährleisten; ich bevorzuge jedoch »der Tag«.

  

Perl – Der Einstieg




Copyright © Galileo Press GmbH 2001 - 2002
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken und speichern. 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.
Die Veröffentlichung der Inhalte oder Teilen davon bedarf der ausdrücklichen schriftlichen Genehmigung von Galileo Press. Falls Sie Interesse daran haben sollten, die Inhalte auf Ihrer Website oder einer CD anzubieten, melden Sie sich bitte bei: stefan.krumbiegel@galileo-press.de


[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, fon: 0228.42150.0, fax 0228.42150.77, info@galileo-press.de