Tipps & Tricks - Cookies setzen und lesen
Dieser Beitrag zeigt, wie Cookies mit JavaScript erstellt, Werte gespeichert
und wieder ausgelesen werden können. Dazu wird ein Willkommensbildschirms erstellt,
bei dem sich Benutzer entscheiden können, ob dieser bei einem weiteren Aufruf
der Startseite erneut angezeigt werden soll oder nicht.
Die Beispielapplikation können Sie
hier
herunterladen. Entpacken Sie die Downloaddatei. Anschließend können Sie die enthaltene
Datei "tipps-tricks-cookies-setzen-und-lesen.lax"
wie gewohnt
importieren.
Aktivieren Sie die
Experten-Optionen,
damit alle Dialoge, die in diesem Beispiel genannt werden, erreichbar sind.
Kenntnisse in JavaScript sind bei diesem Beitrag von Vorteil.
In der Applikation finden Sie die Ansichtsseite "Willkommen". Diese Seite soll im Browser als Willkommensbildschirm
im Tooltip angezeigt werden. Unterhalb der Informationen, die Sie natürlich beliebig gestalten können, befindet sich
ein Kontrollkästchen, das keine
Verknüpfung mit einem Datenfeld
hat. Sein Titel lautet "Hinweis nicht mehr anzeigen". Wenn Sie im
Eigenschaftendialog
des Kontrollkästchens auf den
Reiter Skript
wechseln und den
JavaScript-Editor
öffnen, finden Sie das folgende Skript:
function setDisplayIntro()
{
var bDisplay = Browser.getValue(getElement("FA74C33D46BB032DE215576A4540AE14C7E7F8F1"));
Helper.setCookie("display.dont.show.again", bDisplay, true, (365 * 24 * 60 * 60 * 1000));
return true;
}
Mit Hilfe dieser Funktion wird der Wert des Kontrollkästchens ausgelesen und ein Cookie mit dem Schlüssel
"display.dont.show.again" und dem entsprechenden Wert geschrieben. Zuletzt wird das Gültigkeitsdatum
des Cookies in Millisekunden festgelegt. Hier ist das Ablaufdatum auf ein Jahr gesetzt.
Wenn Sie das Skript in anderen Applikationen verwenden wollen, ersetzen Sie die
GUID (FA74C33D46BB032DE215576A4540AE14C7E7F8F1) des Kontrollkästchens
mit der GUID des Kontrollkästchens aus Ihrer Applikation. Schließen Sie den Editor wieder.
Das Skript ist auf dem
Reiter Skript
dem onclick-Event zugeordnet. Es wird ausgelöst, wenn ein Anwender im Browser auf das Kontrollkästchen
klickt.
Auf der Startseite der Applikation finden Sie die Schaltfläche "Zeige Willkommensbildschirm"
im
Versteckten Bereich. Hier
ist in der Spalte "Web" das Kontrollkästchen ausgewählt, damit das Element im Web und nicht
nur serverseitig verfügbar ist. Als Sprungziel der Schaltfläche ist die Seite "Willkommen"
ausgewählt.
In den
Zielseitenoptionen
kann die Positionierung und Größe des Tooltips eingestellt werden.
Wenn Sie auf dem
Reiter Skript
den Skripteditor erneut öffnen, sehen Sie die beiden folgenden Funktionen:
function displayIntro()
{
if(showIntro())
getElement("001547BDDC66F889B3D82E2C7321D73708CF58D1").click();
return true;
}
function showIntro()
{
var strCookieName = "display.dont.show.again";
var strDontShowAgain = null;
if(Helper.getCookieValueByParam(strCookieName))
strDontShowAgain = Helper.getCookieValueByParam(strCookieName);
if (strDontShowAgain == null || strDontShowAgain == false || strDontShowAgain == "" || strDontShowAgain == "0" || strDontShowAgain == "false")
return true;
return false;
}
Die Funktion "showIntro()" liest den im Cookie "display.dont.show.again" hinterlegten Wert aus.
Davon abhängig liefert die Funktion true oder false als Rückgabewert.
Die Funktion displayIntro() ruft showIntro() auf, um abzufragen, ob der Willkommensbildschirm angezeigt werden soll.
Ist das Resultat dieser Abfrage wahr (d.h. showIntro() liefert true zurück), wird die Schaltfläche geklickt,
die auf der Startseite im versteckten Bereich erstellt wurde.
Wenn Sie das Skript in anderen Applikationen verwenden wollen, ersetzen Sie die
GUID (001547BDDC66F889B3D82E2C7321D73708CF58D1) der Schaltfläche
mit der GUID der Schaltfläche aus Ihrer Applikation.
Im Eigenschaftendialog der Startseite ist auf dem
Reiter Skript
die Methode displayIntro() dem onload-Event der Seite zugeordnet.
Beim Aufruf der Applikation im Browser wird nun der gewünschte Hinweis angezeigt.
Beachten Sie, dass es sich nicht um Datenbankeinträge handelt, sondern über nicht
persistente Cookies. D.h. die gewünschten Einstellungen gehen verloren,
wenn im Browser Cookies gelöscht werden.