Wo stehen JavaScript(e)?


Im Head: Variable und Funktionen definieren

JavaScript-Bereiche sollten im Programmkopf eingerichtet werden, wenn in ihnen Variable deklariert werden sollen, die innerhalb der Seite gebraucht werden, oder wenn Funktionen definiert werden sollen, die später durch irgendwelche Ereignisse (ausgelöst durch Maus, Tastatur oder einen Timer) abgearbeitet werden sollen.
Der Aufruf hat immer die gleiche Struktur: Es wird im öffnenden <script>-Tag mit language="JavaScript" die Scriptsprache angegeben (weil es noch andere gibt!). Die Schreibung von javascript darf variieren. Es dürfen auch JavaScript-Versionsnummern angegeben werden, worauf ich hier generell verzichte. Eigentlich soll diese Angabe in HTML 4.0 anders lauten, nämlich <script type="text/javascript">, und das darf man gerne schreiben. Bloß ältere Browser flippen dann evtl. aus.
Eine Kommentarklammer um den eigentlichen Scriptinhalt soll diejenigen Browser von Fehlermeldungen abhalten, die JavaScript nicht können. Da deren Zahl laufend abnimmt, kann diese Kommentarklammer zunehmend entfallen. Dann folgt der Inhalt des Scripts mit seinen Deklarationen, Funktionsdefinitionen und ggf. auch Aufrufen.
Hier ist ein Deklarationsbeispiel und eine Funktionsdefinition als Beispiel aufgeführt:
 
<head>
   ...
   <title>Test</title>
   <script language="JavaScript">
      <!--
         var wo = "in Wildau!";
         function ausruf(wo)
         {
            alert("Ich studiere " + wo);
         }
      //-->
   </script>
</head>

Im Body: Alles ist möglich

Der gleiche Aufruf, der oben im head erfolgte, könnte auch im body-Teil erfolgen. Einziger Nachteil: Er wird später gelesen. Definitionen sind natürlich erst dann wirksam, wenn sie gelesen worden sind. Aus Gründen der Übersichtlichkeit bevorzugt man gewöhnlich den Kopf-Teil. Wenn allerdings im Script direkte Aktionen vorgesehen sind, wie z.B. Schreiben ins Dokument, dann muß es dort stehen, wo die Aktion stattfinden soll.
 
<script language="JavaScript">
   jetzt=new Date();
     ausgabe="Heute ist "+ jetzt.toLocaleString();
   document.write(ausgabe.bold());
</script>

Hier passiert's:


In HTML-Tags: Im Head definierte Funktion aufrufen

Der Aufruf von JavaScript kann auch innerhalb von HTML-Tags erfolgen. Dies geschieht meistens, um vordefiniert JavaScript-Funktionen aufzurufen. Die Aufrufe werden gewöhnlich durch Ereignisse (auf gut deutsch also "Events") ausgelöst. Ereignisse werden durch JavaScript-Attribute im HTML-Tag aufgefangen. Hier ist es das Klicken eines Buttons.
 
<form>
   <input type=button value="Wo studierst Du?" onClick="ausruf(wo);">
</form>

In HTML-Tags: Vordefinierte Funktion aufrufen

Der Aufruf von JavaScript kann innerhalb von HTML-Tags erfolgen. Wenn es dabei um vordefinierte JavaScript-Funktionen geht, genügt eine einfache Angabe über den Script-Typ. Die Aufrufe werden auch hier durch Ereignisse ausgelöst. Diese werden durch die speziellen JavaScript-Attribute im Tag aufgefangen. Hier ist es die Anwahl eines Links.
 
<a href="javascript:alert('Ihre History-Liste enthält ' + history.length + ' Einträge');">
   Sündenregister
</a>

Als Beispiel: Wie lang ist mein Sündenregister?

Es hat nicht funktioniert? Dann nutzen Sie wahrscheinliche Netscape 6! Es liegt am history-Aufruf, der in dieser Form von Netscape 6 nicht unterstützt wird. Die reine Textanzeige funktioniert dagegen: Test it


Separate Datei: JavaScript-Code laden

Umfangreiche Javascript-Dateien lassen sich beim Seitenstart laden. Vorteil ist, daß sie mehrfach verwendbar sind. Die übliche Kennung ist .js, der Aufruf erfolgt wie unten angegeben im head, wo sonst die JavaScript-Definitionen stünden. Der Aufruf ist an sich klar. Unter "type" ist der Mime-Typ zu verstehen, der dem Server wie dem Zielbrowser bekannt sein muß:
 
<script language="JavaScript" src="meinscript.js" type="text/javascript">
</script>

Ein Vorteil zu ladender JavaScript-Dateien ist, daß sie nur schwer für den Nutzer einzusehen sind. Das direkte Laden zur Einsichtnahme wird vom Navigator und vom IExplorer ab Nummer 5 verweigert.


Kommentare helfen verstehen, was geschehen soll

Es gibt im Zusammenhang mit JavaScript drei Sorten von Kommentaren.
<!--
   Alle Texte, die HTML überlesen soll
//-->
// dies ist eine Zeile, die von Javascript überlesen wird!
/* 
   ein mehrzeiliger Kommentar
   kann so lang sein, wie er will,
   Javascript überliest ihn auch
*/