Zusammenfassung 25.9.
Damit beim Klicken auf den Knopf mit der Aufschrift neue Vorlage die Hintergrundfarbe des Frames mit dem Namen vorlage neu gesetzt wird, muss die JavaScript-Funktion gibNeueVorlage geschrieben werden. (Machen Sie sich klar, an welcher Stelle der HTML-Datei kopf.htm ersichtlich ist, dass genau diese Funktion verwendet werden soll!)
Für die Zuweisung einer festen Farbe, z.B. ein helleres türkis-grün ist in der Funktion die folgende Anweisung möglich:
parent.vorlage.document.bgColor = (50*256 + 160)*256 + 160;
Anders als in HTML-Tags, wo der Farbwert als Reihe von Zeichen angegeben wird (hier:"#32A0A0"), die der Browser dann selbst als Zahl im 16er-System interpretieren muss, wird hier eine Zahl als Wert erwartet. Die beiden Angaben stellen auf unterschiedliche Weise die gleiche Zahl dar:
32(hex)=50(dec) und A0(hex)= 10*16 + 0*1 = 160.
Es gibt es in JavaScript die Standard-Funktion parseInt(Zeichenkette,Zahlsystembasis), die Zeichenketten (Strings) in Zahlen eines beliebigen Zahlsystems umwandelt. Also würde hier parseInt("32A0A0",16) den gleichen Zahlenwert liefern, der mit dem länglichen Klammerterm berechnet wird. Das ist natürlich dann sinnvoll, wenn man die Farbwerte als Texte bekommt und als Zahlen weiterverarbeiten will. Sie ahnen hoffentlich schon, an welcher Stelle unseres Programms das der Fall ist?
Bei der praktischen Übung an den Rechnern gab es einige Probleme. Sehen wir mal von defekten Browser-Installationen ab, so bleiben als typische Stolperstellen:
Tippfehler in den Namen, wobei auch Groß-/Kleinschreibung wichtig ist (z.B. gibNeueVorlage ist nicht das Selbe wie GibneueVorlage).
Im Funktionskopf muss das leere Klammerpaar stehen (also: gibNeueVorlage())
Nach dem Ändern im HTML-Editor muss die Datei gespeichert werden, anschließend muss im Browser die Seite neu geladen werden.
Wichtig ist, dass die Dateinamen und die Orte im Verzeichnis die gleichen bleiben, weil sonst z.B. der Browser die falschen (ggf. die alten) Dateien in die Frames des Framesets lädt. Also nicht mit "speichern unter" sichern und womöglich neue Namen/ andere Verzeichnisse wählen sondern mit "speichern" die alten Dateien überschreiben!
Aufgabe für 26.9.
Die Farbe im Vorlage-Frame soll ja nicht immer die gleiche sein, sondern jedesmal zufällig bestimmt werden.
Dazu ist es nötig, das System einen zufälligen Wert bestimmen zu lassen. In JavaScript gibt es zwei nützliche Standard-Funktionen, die zu dem Mathematik-Objekt Math gehören:
Math.random() liefert einen zufälligen Wert zwischen 0 und 1, also
z.B. 0.2344234553 und beim nächsten Aufruf 0.645343242
Math.floor(Kommazahl) gibt die nächstkleinere ganze Zahl an zu dem Argument Kommazahl an.
Beispiel: Math.floor(4.842212) liefert 4
Überlegen Sie sich, wie sie mit diesen beiden Funktionen eine zufällige Farbe erzeugen können.
Tip: Da der Term sehr lang und unübersichtlich wird, könnten Sie sich selbst zunächst eine Hilfsfunktion (z.B. mit dem Namen rndByte() schreiben, die einen zufälligen, ganzzahligen Wert zwischen 0 und 255(einscließlich) erzeugt. Hilfen dazu finden Sie in der Dokumentation SelfHTML im Teil JavaScript, "Funktionen mit Rückgabewert".
Wenn Sie damit sehr schnell sind, können sie sich gleich noch klarmachen, dass wir so einfach nicht vorgehen können, wenn der Benutzertip auch ausgewertet werden soll...
zurück zur Startseite...