Codeerläuterung:

Header-Script:

<SCRIPT LANGUAGE="JavaScript"><!-- hide this script tag's contents from old browsers>

/* Anlage von Variablen; wegen Zeitfunktion für automatisches Schließen auch hier Anlage von Variablen */

//diese Variablen werden später hochgezählt
var incorrect=0;
var correct=0;

//diese Variablen bestimmen die Verzögerung in Millisekunden für das Schließen des Ergebnisfensters
var vshort=2000;
var medium=4000;
var vlong=6000;

//diese Variablen definieren die Textausgaben für das Ergebnisfenster in html-code

var wrong="<font size=+3 color=ff0000><b>Leider falsch!</b></font><hr>Bitte nicht raten!</font><br>";
var right="<font size=+3 color=00AA00><b>Richtig!</b></font><hr>Ja, richtig!</font>";

/* diese Funktion definiert das Popupfenster sowie die Verzögerung für das Schließen. Vom eventhandler werden Variablenwerte übergeben - siehe unten - die die variablen msg und delay mit Leben erfüllen.*/

function popup(msg, delay) {

//eine Hochzählvariable zum Vergleich     
    var x=0;

//nun werden die Eigenschaften des popup-Fensters definiert

myWin= open("","BF","width=250,height=200,status=no,toolbar=no,menubar=no,scrollbars=yes,resizable=yes");

/*nun wird es kompliziert. Zuerst wird geschaut, ob schon ein document im Fenster myWin existiert. Dies wird meist nicht der Fall sein, so dass der Rest durchgeführt wird*/

while(myWin.document == null){x++};

//popupfenster und leeres Dokument werden geöffnet
myWin.document.open();

/*nun wird via JavaScript ein html-Dokument geschrieben. Dieses startet u.a. auch die javascript-Funktion cd(), welche weiter unten definiert wird. Außerdem wird auch die Variable msg (die vom Eventhandler übergeben wird) ins Dokument geschrieben. Dann wird noch ein Formular mit Knopf definiert. Klick auf den Knopf löst die Funktion closeIt aus. Daneben wird eine skriptgenerierte Ausgabe ins Dokument geschrieben: zuerst die Funktion closeIt(), die aus der Anweisung close() besteht; dann noch die Funktion cd(), die die Funktion closeit nach einer Zeitverzögerung auslöst; diese Verzögerung wird über die Variable delay definiert, die durch den Eventhandler übergeben wird.*/

myWin.document.write("<html><head><title>Message");
myWin.document.write("</title></head><body bgcolor=eeeeee onLoad='cd()'>");
myWin.document.write("<center>");
myWin.document.write(msg+" <p><form><input type=button value=ok onClick=closeIt()></form>");
myWin.document.write("<SCRIPT LANGUAGE='JavaScript'>function closeIt() {close();}function cd(){huhu = setTimeout('closeIt()'," + delay+");}</script>");

//hier wird das html-Dokument geschlossen, damit ist es fertig dargestellt.

myWin.document.write("</body></html>");

/*Diese Zeile schließt Fenster und Dokument, sofern nicht auf den ok-Button gedrückt wird. Diese Zeile wird erst umgesetzt, wenn die beim Laden gestartete Funktion cd abgelaufen ist.*/

myWin.document.close();
}

<!-- done hiding from old browsers --></SCRIPT>

Im Body wird innerhalb der Tabelle die Funktion popup() jeweils bei Klick auf einen Antwortknopf gestartet. Hierbei werden je nachdem, ob die Frage korrekt oder nicht beantwortet wurde, unterschiedliche Variablenwerte für msg sowie delay mit übergeben. Diese werden nur als Variablenname angegeben; im Headerskript sind ja die zugehörigen Variablenwerte definiert. Außerdem werden die Variablen correct bzw. incorrect jeweils um 1 hochgezählt. Einige Beispiele:

<INPUT TYPE=radio NAME=f5 VALUE=100 onclick="popup(right,medium); correct++;">zutreffend
......

<INPUT TYPE=radio NAME=f5 VALUE=100 onclick="popup(wrong,vshort); incorrect++;">nicht
zutreffend<br>
.......

<INPUT TYPE=radio NAME=f6 VALUE=100 onclick="popup(wrong,vshort); incorrect++;">zutreffend</P>

Bei Klick auf den Auswertebutton wird dann noch das Gesamtergebnis ausgegeben. Dabei müssen die hochgezählten Variablen correct und incorrect ausgegeben werden. Dies geschieht mittels einer Alertausgabe:

<INPUT TYPE=button NAME=Taste VALUE="Bitte Punktzahl..." onclick='alert("Sie hatten " + correct + " korrekte und " + incorrect + " falsche Antworten von 6 Fragen!");'>


<< zurück zum Beispiel.

JavaScript-Vorlage Stefan Krumm, Erlangen (www.geol.uni-erlangen.de/javascript/)
Anpassung und Code-Erläuterung R. Leinfelder