Sprachelemente:
Ein JavaScript besteht aus einer Abfolge von einzelnen Anweisungen bzw. Befehlen an den Browser und ist in ziemlich kurzen Zeilen gehalten; ein Anweisungs-Element pro Zeile. Hier folgt ein Überblick zu den wichtigsten Elementen in Javascript wie Methoden, Funktionen, Variablen, Arrays, Operatoren, Bedingungen und Eventhandlern.
Kommentar
Kommentar
Um innerhalb des Javascriptbereichs eingegrenzte Zeichen oder Zeilen von der Interpretation durch den Browser auszunehemen gibt es zwei Kommentare:
/* das innerhalb nicht interpretieren */
// das bis zum Zeilenende nicht interpretieren
Methoden
Methoden
Methoden sind vordefinierte Werkzeuge mit denen Javascript etwas tun kann.
Es gibt Methoden um das Browserfenster zu manipulieren, Strings (Zeichenketten),
Zahlen, die Datumsangabe und Zeitabschnitte, die Dokumenteigenschaften oder andere Objekte im Dokument.
Eine Methode wird benutzt, indem man sie an das Objekt anhängt und ihr Parameter übergibt:
objekt.methode(parameter); z.B: window.open(name, size); oder: document.write('Hallo');
Es gibt sehr viele Methoden und um ein paar davon kennenzulernen ist nicht nur diese Seite sondern dieser ganze Javascript-Teil vorgesehen; die Methoden sind sehr spezifisch auf die zu manipulierenden Objekte zugeschnitten.
Funktion
Funktion
Die Funktion ist wie eine selbst geschriebene, nicht vordefinierte Methode um etwas zu tun.
Eine Funktion ist eine Befehlsfolge, welche man einmal schreibt und hinterlegt und dann verschiedentlich und öffters aufrufen kann.
Sie steht im Head oder wird besser in eine externe JavaScript Datei ausgelagert.
Durch Funktionen können verschachtelte Befehle und Methoden zusammengefasst werden. Mit einer Funktion kann sogar ein eigenes Objekt definiert werden.
Funktionen müssen aufgerufen werden. Beim Aufruf können einer Funktion Parameter zur Verarbeitung übergeben werden.
JavaScript-Code, der nicht innerhalb einer Funktion steht, wird beim Einlesen der Datei vom Browser sofort ausgeführt.
|
function FunktionsName(Parameter)
{ Befehl; return was; } |
Funktion schreiben:
Eine Funktion wird mit dem Schlüsselwort function deklariert und dann benannt. Schreibt man aus Versehen funktion, dann ist alles für die Katz. Der FunktionsName kann frei gewählt werden, einWort, und er soll aussagekräftig sein. GrossKleinSchreibung wird unterschieden, Sonderzeichen sind verboten ausser Unterstrich und Zahlen, aber diese nicht als erstes Zeichen. |
| Empfangen der Parameter:
In der runden Klammer stehen die übergebenen Parameter, das was von der Funktion erwartet und verarbeitet wird. Damit im Anweisungsblock einer Funktion auf den Parameter zugegriffen werden kann, muss der Parameter von einem Variablenname aufgenommen werden. Mehrere Parameter werden durch Kommas getrennt. Einer Funktion können nur soviele Parameter übergeben werden, wie sie erwartet. |
|
|
Befehle/Anweisungen/Berechnungen:
Die Geschweiften Klammern beinhalten den Anweisungsblock, also Befehle wie damit verfahren werden soll. Weder nach der runden noch nach der geschweiften Klammer hat es ein Semikolon - aber nach jedem Befehl. |
|
| function GibRueckgabeWert ( ) {
var Varibable=prompt('Frage',' '); return Varibable; } |
Rückgabewert bestimmen:
Eine Funktion kann nach getaner Arbeit einen Rückgabewert retournieren, der in einer Variablen gespeichert wird, die im Anweisungsblock dieser Funktion steht mittels dem Schlüsselwort return |
|
<a onClick="test( );">
Funktion aufrufen</a> |
Funktion aufrufen:
Im Beispiel ist der FunktionsName test(). Der Aufruf, mittels eines Event-Handlers, erfolgt durch Nennung des FunktionsName() inkl. der runden Klammer, auch wenn diese leer ist, also nichts übergeben wird. |
| test(Marcel%20Biefer) | Parameter übergeben:
Parameter werden beim Funktionsaufruf der Klammer übergeben. So wird ein Leerzeichen übergeben. Es kann auch ein "String" übergeben werden, oder der Namen einer Variablen, welche zuvor definiert wurde. |
|
return "true"
return false; |
Der Rückgabewert kann auch einfach ein fester Wert sein wie true
Oder nichts! In diesem Beispiel wird return false benutzt um einen Effekt auszuschliessen, nämlich dass die Seite neu geladen wird und der User an den Anfang der Seite geschickt wird: <a href="#" onclick="keineFunction();return false;">Keinlink</a>
|
| void(0) |
void ist eine Methode, die verhindert, dass bei einem Klick auf einen Link eine Seite neu geladen wird (vermeiden).
Der Link darf aber kein img (Bild) einschliessen, sonst zeigt der IE das Bild nicht mehr; es empfiehlt sich dann den Operator 'return' zu nutzen (siehe oben).
void muss immer ein Parameter übergeben werden, und sei es eine 0: <a href="javascript: void(0)">Nulllinkink</a>
void kann aber schon sinnvolle Parameter übernehmen: <a href="javascript: void(myName='Biefer');alert('Mein Name ist '+myName)">See myName</a>
|
Variable
Variable
Eine Variable ist eine Schachtel in der ein Wert definiert und verändert werden kann. Man muss Variablen immer vorher irgendwo deklariert haben, um mit ihnen dann mittels Methoden und Funktionen etwas anstellen zu können.
| var gruss | eine Variable wird mit dem Schlüsselwort var deklariert und dann benannt.
Der variablenName kann frei gewählt werden, einWort, aber soll aussagekräftig sein. GrossKleinSchreibung wird unterschieden, Sonderzeichen sind verboten ausser Unterstrich und Zahlen, aber diese nicht als erstes Zeichen. |
| gruss = "Hallo ich bin ein Gruss"; | Die Variable wird initialisiert, will heissen, dem VariablenNamen wird ein Wert zugewiesen, = ist der ZuweisungsOperator, der Wert ist in diesem Fall ein "StringWert" (siehe unten). |
| var gruss = "Hallo ich bin ein Gruss"; | beides zusammen im Kurzverfahren |
|
var Apfel, Birne, Nuss; |
mehrere Variablen können zusammen deklariert, untereinander durch , (Kommas) getrennt werden.
Das deklarieren von Variablen ist schon eine Anweisung und muss auch mit einem ; (Semikolon) abgeschlossen werden. Diese Variablen hier wurden noch nicht initialisiert. |
| Globale Variablen sind für die ganze Seite gültig, den sie werden unabhängig einer Funktion zB. im Head deklariert.
Lokale Variablen wurden innerhalb einer Funktion deklariert und stehen nur in dieser Funktion zur Verfügung, soll eine Variable welche innerhalb einer Funktion deklariert wurde danach auch allgemein zur Verfügunfg stehen, also als eine Globale Variable gelten, so lässt man das Schlüsselwort var bei der Deklaration weg! |
|
| var HoleName = prompt ("Wie heisst du?"," "); | Beispiel: Nachdem der User OK geklickt hat, wird seine Eingabe in der Variablen HoleName festgehalten, abrufbar und verfügbar. Würde keine Variable definiert, könnte man des Users Eingabe nicht erfassen und benutzen. |
| Die Variable wird einfach beim Laden der Site durch den Browser ermittelt und braucht nicht wie eine Funktion aufgerufen zu werden. | |
| Beispiel | Der Sinn des Lebens |
Wert
Wert
Es gibt 3 Arten von Werten in Variablen: 1. Ein numerischer Zahlenwert (integer), 2. Ein zeichen oder Text (String) und 3. Ein Resultat eines Vergleichs ist wahr oder falsch (Boolscher Wert). Javascript nimt die Einstufung selber vor (ich muss also kein Schlüsselwort wie integer vor einen Variablennamen setzen). Diese Typen können ineinander umgewandelt werden.
|
15
"Hallo" true, false |
Integer
String Bolean |
|
var Zahl= 1;
var Zeichen = "1"; |
Der Unterschied ist, dass ich mit einem Integer Rechenoperationen durchführen kann, mit einem String nicht. |
| = | Wert-Zuweisungen von Variablen stehen nicht in Klammern sondern folgen einfach auf diesen ZuweisungsOperator = |
| BlaBla.value=Varibable | Werte können auch wieder Variablen sein, mit einem Object verbunden daherkommen oder aus einer Funktion stammen. Einer Eigenschaft wird der Wert einer Variablen mit value zugeordnet. |
|
" "
' ' |
Das ist ein String, zwischen die Anführungszeichen kommt ein Text als Wert,
ein leerer String hat den Wert Null.
Man kann doppelte oder auch einfache Anführungszeichen nehmen. |
| "Hallo, ich bin's." | Kollisionen sind durch Balance zu vermeiden, das heisst ein String immer mit doppelten Anführungszeichen beginnen und beenden, dazwischen kann ein Apostroph verwendet werden. |
|
<a href="#" onMouseOver="window.location.href=
'test_danke.htm';"> |
Achtung, es kommen ja auch Anführungszeichen in HTML-Tags vor und in den JavaScripts.
Angewöhnen: Innerhalb von double quotes - benutze single quotes. |
|
\n \t |
Steuerungszeichen innerhalb eines Strings, z.B. zur Steuerung von Textumbruch in einem Alert.
dieses bewerkstelligt einen Zeilenumbruch dies ein Tabulator (für pseudo Tabelle) |
|
\"
\' 'Hallo, ich bin\'s.' var Verzeichnis = "d:\\daten" |
Entwertungszeichen
macht ein Anführungszeichen funktionsunfähig, entwertet also dessen besondere Bedeutung. z.B. schliesst einen Text-String doch nicht ab. Sich selber entwertet er auch. |
| var VorName="Marcel";
var NachName="Biefer"; document.write("Hallo "+ "VorName"+" NachName"); |
StringVerknüpfungsOperator
kann Strings (auch solche, die unter Umständen nicht auf der selben Script-Zeile liegen) miteinander verknüpfen, diese hier zu: Hallo Marcel Biefer (die Leerschläge gehören in die Strings) |
| var Monat12="Dez";
Nr = 12; document.write("Monat"+Nr) document.write(eval("Monat"+Nr)) |
gibt den Variablennamen aus: Monat12 gibt den Variableninhalt aus: Dez |
Array
Array
In einem Array sind mehrere gleichartige Variablen angeordnet, die unter einem gemeinsamen ArrayNamen zusammengefasst sind, und einzeln durch ihren Index angesprochen werden. Das Zählen beginnt bei Null.
|
Arrayname[0]
Arrayname[Variablenname] |
Eine Variablensammlung heist Array. Der Array hat einen Namen, die Variablen darin sind nummeriert und können via dieser Nummer (Index)
angesprochen werden, er steht in eckigen Klammern. Das Zählen beginnt bei 0!
Die Variablen können statt der Indexzahl auch einen assotiativen Namen haben, der steht ebenfalls in der eckigen Klammer. |
| var a = new Array() | So wird ein Array in JavaScript instantiert. Durch das Schlüsselwort new wird eine Instanz eines Objektes erzeugt. |
|
a[0] = "Januar";
a[1] = "Februar"; //usw. a[11] = "Dezember"; |
Der Array wird mit Variablen gefüllt. |
| var a = new Array("Januar", "Februar", "März") | Das Array kann auch bei der Deklaration schon vorbelegt werden.
Mit diesem Aufruf würde also a[2] auf März gesetzt. |
| var b = new Array("", "Januar", "Februar", "März") | Die modifizierte Anweisung, damit b[3] den Wert »März« enthält. Das ist aber eine Zwänglerei, die sich beim durchlaufen des Arrays mit einer Schleife rächen könnte. |
| Mehrdimensionales und Assoziatives Array siehe: Arrays | |
| a[-1] == "Dezember"; | Das letzte Element eines Arrays spricht sich per length-1 an (von 0 ausgehend auf die andere Seite). |
| alert(a.length); | length gibt die Anzahl Elemente eines Array zurück. Im Beispiel also 12. |
Prototypen
Prototypen
Ein Prototype (in anderen Sprachen hiesse der Klasse) ist quasi eine Schablone für Objekte. Alle Objekte, die ich mit dieser Schablone erzeuge sind Instanzen dieser Prototype-Funktion,
und verfügen so über den selben Satz an Komponenten (Eigenschaften und Methoden, Variablen und Konstanten) wie durch den Prototyp erzeugt.
Der Prototype legt also die Natur der Objekte fest. Die Klasse 'Hund' beispielsweise, sagt mir, was ein Hund ausmacht, alle Instanzen davon,
sei es das Objekt Berhardiner oder das Objekt Pudel, haben einen Schwanz (einen kürzeren oder längeren), womit sie Wedeln
(heftiger oder weniger) und sie können alle bellen; keiner kann plötzlich miauen, aber jeder hat eine unterschiedliche Farbe.
Es gibt also Typenspezifische und Instanzspezifische Eigenschaften bei Objekten.
| function Protoname | Einen neuen Prototype definiert man nicht etwa mit einem Schlüsselwort 'class' (was zu erwarten gewesen wäre), sondern einfach wie eine Funktion! |
| (zahl1, zahl2) | Die Instanzen dieses Prototyps, nämlich die Objekte, erwarten die beiden Parameter für zahl1 und zahl2. Das wird schon wärend der Konstruktion, dem Prototyping, angegeben. |
|
{
this.zahl1=zahl1; this.zahl2=zahl2; } |
Methoden sind eigentlich Funktionen von Eigenschaften. Innerhalb der Methode verweist das Schlüsselwort 'this' auf das Objekt dessen Eigenschaft sie ist.
this wird benutzt, um in einem neuen Prototype auf ein neu erzeugtes Objekt zu verweisen und es zu initialisieren. Das Objekt kann dann so angesprochen werden: Protoname.zahl1 |
| Protoname.Verdoppler = 2; | Der Wert Verdoppler ist typspezifisch, er ist eine Eigenschaft des Prototyps. (Wir könnten auch noch typspezifische Methoden schreiben.) |
|
Protoname.prototype.zeigZahlen = function() {
return "Die beiden Zahlen sind "+ this.zahl1 + " und " + this.zahl2 + "."; } |
Die neue Methode zeigZahlen() ist instanzspezifisch, daher ist sie eine Eigenschaft des Prototypobjekts. |
| var Objektname = new Protoname(); | Eine Instanz des Prototyps, also ein Objekt wird erzeugt. Dieses Objekt kann nun das tun, was Objekte dieser 'Klasse' so können. |
| alert="Objektname.zeigZahlen(4, 6)"; | Aufruf |
Operator
Operator
Operatoren tun etwas, sie rechnen, vergleichen, verknüpfen oder brechen ab.
| Zuweisungs Operatoren | liefern eine Zahl |
|
var x = 4, y = 1;
x += y; heisst x = x + y x -= y; heisst x = x - y x *= 5; heisst x = x * 5 x / = y; heisst x = x / 1 x % = 3; heisst x = x / 3 rest |
Variablen erfahren Zuweisung von Wert durch = (ein Gleichheitszeichen)
der ZuweisungsOperator kann den zugewiesenen Wert auch verändern und damit die Variable variieren (zirkuläre Bezüge) x wird so zu 5, 3, 20, 4 und 1 Modulo% teilt auch aber ergibt den ganzzahligen Rest |
|
ArithmetischeOperatoren
für Zahlen Berechnungen |
liefern eine Zahl |
| + - * / % | plus, minus, mal, geteilt, modulo modulo gibt den Rest nach einer Teilung als Ganzzahl zurück |
| ++ | Inkrement erhöht den Wert um 1. Vor dem Gebrauch ++1 hat man es mit einer 2 zu tun, Erhöhung nach dem Gebrauch 1++ hat man es beim Gebrauch noch mit einer 1 zu tun |
| -- | Dekrement verringert den Wert um 1. Auch vor --1 und 1-- nach. |
| - | unitäre Negation (Vorzeichen verändern) |
| LogischeOperatoren | liefern true oder false |
|
&& auch and || auch or ! |
verknüpfen mehrere Bedingungen
true wenn beide Operanden stimmen (und) true wenn einer der beiden Operanden richtig ist (oder) true wenn Operand falsch ist (nicht) |
| VergleichsOperatoren | liefern true oder false |
| == | Vergleichen Variable/Wert erfährt Vergleich mit Wert/Variablen. Das Resultat ist true, wenn beide gleich sind.
Das ist recht locker, als gleich gilt eine Zahl 2 mit einem String "2", false ist das Gleiche wie 0, null ist gleich undefined. |
| === | Prüft auf Identität mehr als Gleich ist identisch |
|
!=
!== > < >= <= |
Das Resultat des Vergleichs ist true, wenn beide ungleich sind.
nicht identisch ist true wenn linker Operand grösser ist als rechter links kleiner als rechts grösser oder gleich kleiner oder gleich |
|
+
"bla" + "bla" bla + "bla" |
Verknüpfungsoperator
zwei Strings verknüpfen eine Variable mit einem Strings verknüpfen |
Reservierte und sonstige Worte
Reservierte und sonstige Worte
Es tauchen zuweilen Begriffe auf, deren Zweck oder Bedeutung nicht gleich erfassbar sind.
| typeof | Operandentyp
Mit was für einer Variablen habe ich es hier zu tun, oder ist es ein Funktionsname? var iknow = typeof x; Gibt number, string, boolean, object, function oder undefined als String zurück |
| undefined | if (typeof x == undefined) - testet die Existence von x
if(x == undefined) - testet den Wert von x |
| instanceof |
Prüft, ob ein Objekt (auf der linken Seite) mit einer Konstruktorfunktion (rechts) erzeugt wurde
Objekt ist eine Instanz von z.B. Date ? |
| in | Eigenschaftsname in Objekt ? |
| delete | Löscht eine Eigenschaft, was nicht das Selbe ist wie auf null setzen |
| this | <h2 onclick="this.style.color = '#cc0000';">
element.onclick = function () {this.style.color = '#cc0000';} this ordnet den Event oder die Funktion dem aktiven Element zu. Ohne 'this' würde die Funktion den gegenwärtigen Besitzer, nämlich das window verändern. Übrigens: <h2 onclick="doSomething()"> beschreibt keine Funktion, sondern ruft eine auf. Auch in jener Funktion muss angegeben werden, auf welches Element sich eine Anweisung bezieht sonst passiert es mit dem window. Siehe oben bei Prototype. |
| eval() | evaluieren Eine Methode, die es ermöglicht, Code bzw. eine Berechnung auszuführen, der/die als Zeichenkette (String) vorliegt (und ihr als Parameter übergeben wird). Die Zeichenkette, z.B. aus einer Formulareingabe oder einem Prompt stammend, wird ausgewertet (was ziemlich gefährlich sein kann!). formeingabe1='window.open("http://www.biefer.com/")'; eval(formeingabe1); formeingabe2='alert("25+42/3'"); eval(formeingabe2); |
| with() | Spart Tipparbeit
Mit einem Objekt mehrere Anweisungen ausführen bzw. auf ein Objekt mehrere Methoden anwenden: with(ObjectName) { befehlen; befehlen; } with(document) { open(); write('hallo'); close(); } |
Bedingung und Schlaufen
Bedingung
Bedingungen sind Anweisungen (Befehle), die unterscheiden, ob sie betroffen sind oder nicht; oft sind es Verzweigungen (Weichen) oder Schleifen, die mehrmals durchlaufen werden.
| if | wenn dann ABZWEIGUNG |
| if ( ) {
Anweisung1; Anweisung2; Anweisung3; } |
Bei einer if-Bedingung steht die (Bedingung) in der Klammer, gefolgt von einem Anweisungsblock der ausgeführt wird,
wenn die Antwort ja wäre:
wenn (dasunddas) zutrifft, dann {mache alles das} zutrifft, dann wird aber nicht hingeschrieben, ist es true, wird einfach der Anweisungsblock ausgeführt, ist es false, wir der Anweisungsblock übersprungen; sonst mache nichts anderes, sondern fahre einfach normal fort mit der Darstellung dieses Dokuments - braucht auch keine besondere Anweisung |
| else {
} |
sonst mache etwas anderes nämlich - hingegen braucht den Anweisungsblock mit else
wenn die Antwort auf if false ist, wird dieser Block ausgeführt |
|
Anweisungsblöcke können so sehr kompliziert verschachtelt werden, oder
if Abfragen können alleine stehen, ohne else wenn sonst nichts zu tun ist. |
|
| if (typeof myArray == 'undefined') {...;} | Falls die Variable nicht definiert wurde |
| if (!myArray) {...} | Falls die Variable ohne Wert (leer) ist |
| if (Bedingung1 && Bedingung2) {...} | Mehrere Bedingungen |
|
if (myArray != null && myArray.length != 0)
{...} |
Mehrere Bedingungen sind innerhalb der Klammer durch logische Operatoren verbunden: && meint 'und', || meint 'oder'.
!= ist ein Vergleichsoperator und meint 'nicht gleich'. (Diese Abfrage prüft, ob ein Array existiert und ob er einen Wert hat.) |
|
else if (...) {...}
else {...} |
else if sonst wenn
Will noch mehr abfragen, können zwischen dem if und dem else beliebig viele else if Bedingungen eingeschoben werden. Zu guter letzt (wenn gar nichts stimmt) sollte aber schon eine Default Anweisung kommen, die abschliessend etwas tut. |
| Konditionaler Operator | |
|
? in der Nähe von :
eigentlich (Bedingung) ? {true} : {false}; |
er überprüft zwei Werte unter einer Bedingung wie die Verzweigung aber verdreht, das ? steht für if, der : für else |
| SWITCH unterscheidet viele Fälle (ab JS Version 1.2) | |
|
switch (eineVariable) {
case "a": alert("Wer a sagt ..."); break; case "b": alert(" "); break; default: alert(" "); break; } |
Mit switch leiten Sie eine Fallunterscheidung ein.
Dahinter folgt, in runde Klammern eingeschlossen, eine Variable oder ein Ausdruck, für dessen aktuellen Wert Sie die Fallunterscheidung durchführen. Alle Fälle, die Sie abfragen möchten, werden innerhalb geschweifter Klammern notiert. Jeden einzelnen Fall leiten Sie mit case ein (steht für wenn). Dahinter folgt die Angabe des Wertes, auf den Sie prüfen wollen (auf Wahrheit) und ein : (Doppelpunkt) dahinter heisst: dann dann popt in diesem Beispiel ein Alert Fenster auf mit einer Meldung. Wenn Sie break weglassen, werden alle nachfolgenden Fälle auch geprüft, mit brake werden die restlichen Fälle nach einer Übereinstimmung übersprungen. Wenn keiner der definierten Fälle zutrifft, können Sie am Ende das default-Verfahren: angeben. |
| SCHLEIFEN | |
| while (Bedingung) {
Anweisung; } |
Die while-Schleifen wiederholen Programmanweisungen so lange, wie die Bedingung, die in der Schleife formuliert wird, erfüllt ist.
Erst wenn die Bedingung false erzeugt, wird die Schleife abgebrochen. Es muss deshalb mindestens eine gewiss zu erfüllende Möglichkeit geben, um die Schleife nach einer angemessenen Zeit zu beenden. Andernfalls bleiben wir in einer sogenannten Endlosschleife gefangen! Die Bedingung wird vor dem Durchlaufen des Anweisungsblocks überprüft! |
|
do {
Anweisung; } while (Bedingung) |
Der Unterschied der do/while-Schleife zur normalen while-Schleife ist, dass bei der do-while-Schleife zuerst der Code einmal ausgeführt und erst danach die Schleifenbedingung überprüft wird. Auf diese Weise können Sie erzwingen, dass Anweisungen innerhalb der Schleife auf jeden Fall mindestens einmal ausgeführt werden, auch wenn sich die Schleifenbedingung gleich darauf als unwahr herausstellt. |
|
for (Bedingung) {...}
for (var i=0; i<10; i++) { document.write( i + "<br />") } |
Die Bedingung einer for-Schleife sieht von vorneherein einen Zähler und eine Abbruchbedingung vor.
for (initialisieren ; Bedingung ; aktualisieren) {machen ...} solange (Wert i ; kleiner als 10 ist ; erhöhe Wert i) {schreibe Wert i und Zeilenumbruch} |
|
for (Eigenschaftenvariable in Objekt) {...}
for (e in document.forms[0].elements) document.write(e.name + "<br />") |
Die for/in-Schleife durchläuft alle Eigenschaften eines Objekts und macht mit jeder das Selbe.
Mit jedem Schleifendurchgang wird der Arrayindex um 1 (eine Objekteigenschaft) erweitert.
Den aktuellen Wert der Objekteigenschaft können Sie sich mit Objektname[Eigenschaft] ausgeben lassen.
Die Schleife läuft so lange, wie es verfügbare Objekteigenschaften gibt.
Diese for/in-Schleife gibt das NAME-Attribut aller Elemente eines Formulars wieder. |
| continue | Mit continue erzwingen Sie sofort den nächsten Schleifendurchlauf. Nachfolgende Anweisungen innerhalb der Schleife werden bei diesem Schleifendurchlauf nicht mehr ausgeführt. |
Eventhandler
Eventhandler
Ein EventHandler ist kein richtiges Script sondern eine Anweisung welche immer in ein HTML Tag eingebettet wird.
Die EventHandler stehen also nicht zwischen <Script>Tag</Script>
In HTML 4.1 kann der Eventhandler case insensitive geschrieben werden, etwa so: onClick=, in XHTML werden sie strikt klein geschrieben: onclick=.
|
<a onwarum="Aufruf()";
<a href="#" onclick="methode()"; <input onmouseover = "this.bgcolor="Red"; |
Ein Event ist etwas, das registriert werden kann, eine Maus die sich bewegt, eine Taste die gerückt wird, das Verlassen der Seite, etc.
Der Eventhandler steht z.B. im Verweis, also im Link-Tag vor oder nach der URL, oder im input-Tag eines Formulars. Was dem = folgt, ist das, was passieren soll "in Anführungszeichen", eine JavaScript-Anweisung wie ein Funktionsaufruf oder eine Methode. |
| ; | Auch diese Befehlszeile schliesst ab mit ; |
|
,
<body onload = "Anweisung1(),Anweisung2()";> |
Komma: mehrere Event-Handler, welche simultan ausgeführt werden sollen, trenne man nur mit einem Komma (ohne Lehrschlag). |
| <body onload = "multiloader()";> | Mehrere onload Anweisungen werden jedoch besser in eine Funktion ausgelagert, es gibt dann nur noch einen onload, welcher die Funktion aufruft. <script type="text/javascript">function multiloader(){ script1(); script2(); script3(); }</script> |
| Liste von EVENT-HANDLER | |
|
stehen alle in einem Link
oder Formular-Feld onmouseover=" "; |
also im <a>Tag gleich nach der URL
beimDrauffahrenmitderMaus |
| onmouseout=" "; | beim verlassen des Links mit dem Mauszeiger |
| onmousedown=" "; | wärend dessen die Maustaste gedrückt gehalten wird |
| onmouseup=" "; | nach dem die Maustaste losgelassen wurde |
| onclick=" ";
ondblclick=" "; |
beimLinkAnklicken
bei doppeltem Anklicken -gibts nicht bei NS unter MacOS und Opera- |
| steht in einem Formular
onfocus=" "; |
Text, Textarea oder Select Feld:
<INPUT TYPE="text" onfocus=" "> |
| onfocus=" "; | beiminsFeldKlicken |
| onblur=" "; | beimVerlassendesFeldes |
| onchange=" "; | beimFeldVerändern |
| onselect=" "; | beimSelektionierenvontextimFeld |
| onsubmit=" "; | beimauf den SubmitButtonKlicken |
| onreset=" "; | wenn die Formulardaten zurück gesetzt werden mit dem ResetButton
-nichts für NS 4.x und Opera 5- |
| steht im <Body>Tag
onload=" "; |
beimLadenderSeite |
| <body onblur="self.focus();"> | beimVerlassenderSeite
Diese Seite drängt sich immer in den Vordergrund! |
| <body onunload="window.open('...')";> | das ist böse! (und wird vom Browser geblockt)
beimSchliessenderSeite wird ein Popup aufgepopt |
| <body onresize="location.reload()";> | beim Verändern der Fenstergrösse - NS 4.7 Browser hatte mit DHTML Probleme, wenn die Fenstergrösse verändert wurde. Auf dieses Ereignis sollte also der Fensterinhalt neu geladen werden! |
| steht meistens im BodyTag
onmousemove=" "; |
bei bewegter Maus |
| steht im <img>Tag
onerror=" "; |
im Fehlerfall beim Laden des Bildes |
| können in sehr vielen Tags stehen
onkeyDown=" "; onkeypress=" "; onkeyup=" "; |
beim Drücken einer Taste des Keyboards bei gedrückt gehaltener Taste wenn die Taste wieder hoch kommt |
| Es gibt noch einige andere Event-Handler welche im einen oder anderen Browser funktionieren, du diesen ist eine Liste zu konsultieren. | |
| Erlaubt in <a> <area> Tags | javascript: |
| <a href="javascript:JavaScript-Anweisungen
zB. FunktionsName( )" zB. alert(document.lastModified)"> |
eine Syntax, die eingeführt wurde, um JavaScript-Code als Verweisziel zu notieren.
Beachten Sie: Diese Form des Aufrufes erfordert zwingend den Rückgabewert undefined. Ist dies nicht der Fall, wird der jeweilige Rückwert der JavaScript-Anweisung in das Dokument geschrieben und die aktuelle Seite gelöscht. Sie können gegebenenfalls unter Verwendung des Operators void den Rückgabewert einer Anweisung unterdrücken und auf undefined setzen. |
| <a href="javascript:void(0)"> | Keie URL ist mit diesem Link verbunden! Man braucht den LinkBereich z.B. für einen MousEvent, nicht um eine Seite zu laden. (Siehe oben bei Funktion) |
Weiteres
Was einzelne kryptische Zeichen in JavaScript bedeuten und über die Fehlersuche siehe Fehlersuche!