Sie können anstelle dieser redundanten Skripts eine Funktion schreiben, die alle erforderlichen Anweisungen enthält. Muss die Cookie-Datei erweitert werden, rufen Sie lediglich die Funktion mit deren Namen auf und übergeben ihr den Text, der dem Cookie hinzugefügt werden soll. Betrachten Sie bitte die folgende Webseite:
Listing 9.16 Der Zugriff auf Cookies mit einer Funktion
InhaltCookie = InhaltCookie + NeuerText;
document.cookie = InhaltCookie;
}
// -->
</script>
</head>
<body>
<!-- Hier folgen die Tags für die Darstellung der Webseite. -->
...
<!-- Jetzt müssen Benutzereinstellungen gespeichert werden. -->
<script language="javascript" type="text/javascript">
<!--
CookieDateiErweitern("Erster hinzuzufügender Text");
// -->
</script>
<!-- Hier folgen weitere Tags. -->
...
<!-- Hier müssen noch einmal Benutzereinstellungen gespeichert werden. -->
<script language="javascript" type="text/javascript">
<!--
CookieDateiErweitern("Zweiter hinzuzufügender Text");
// -->
</script>
<!-- Hier folgen weitere Tags. -->
...
<!-- Hier müssen noch einmal Benutzereinstellungen gespeichert werden. -->
<script language="javascript" type="text/javascript">
<!--
CookieDateiErweitern("Dritter hinzuzufügender Text");
// -->
</script>
</body>
</html>
Diese Webseite enthält im Head-Bereich ein JavaScript. Dort wird die Funktion CookieDateiErweitern definiert. Sie erzeugen eine Funktion mit dem Schlüsselwort function gefolgt von dem Namen, den die Funktion erhalten soll. Mit
function Funktionsname {
Anweisung1
Anweisung2
Anweisung3
...
}
teilen Sie dem Browser also mit, dass die Anweisungen, die innerhalb der geschweiften Klammern aufgeführt sind, unter dem Namen Funktionsname zusammengefasst werden sollen. Sie können diese Anweisungen später an jeder beliebigen Position innerhalb des Skripts ausführen lassen, indem Sie einfach den Namen der Funktion in das Skript einfügen:
Hinweis: Beachten Sie bitte, dass der Browser die Anweisungen innerhalb der Funktion nicht ausführt, wenn er die Webseite zum ersten Mal einliest. Er weiß, dass er die Befehle innerhalb einer Funktion nur dann ausführen darf, wenn er an einer anderen Stelle des Skripts auf den Funktionsnamen trifft.
Doch zurück zu der Funktion der Beispielwebseite. Dort finden Sie hinter dem Funktionsnamen einen Text in Klammern:
function CookieDateiErweitern(NeuerText) {
Das Element in der Klammer ist ein so genannter Parameter. Sie können einer Funktion einen Parameter übergeben, mit dem die Anweisungen innerhalb der Funktion arbeiten können. Dazu ein einfaches Beispiel. Wenn in einer Webseite die folgende Funktion
function TextAusgeben(Text) {
alert(Text);
}
definiert und später im Skript der folgende Befehl
TextAusgeben("Hallo Leute!");
aufgeführt ist, zeigt der Browser den Text »Hallo Leute!« in einem Dialogfeld an. Sie können einer Funktion somit einen oder mehrere Werte übergeben, wenn Sie die Funktion aufrufen. Wenn Sie mehrere Werte übergeben möchten, müssen diese durch Kommata voneinander getrennt angegeben werden:
Die Funktion der Beispielwebseite erwartet somit einen Wert, der in der Variablen NeuerText gespeichert wird. Dieser Wert wird von den Anweisungen innerhalb der Funktion verwendet, um die Cookie-Datei zu erweitern:
function CookieDateiErweitern(NeuerText) {
var InhaltCookie;
InhaltCookie = document.cookie;
InhaltCookie = InhaltCookie + NeuerText;
document.cookie = InhaltCookie;
}