[ Pobierz całość w formacie PDF ]
komputer = "nie";
document.cookie = "imie =" + imie + "; expires = " + expirationDate;
document.cookie = "nazwisko =" + nazwisko + "; expires = " + expirationDate;
document.cookie = "komputer =" + komputer + "; expires = " + expirationDate;
}
function checkCookie(searchString){
var c = document.cookie;
point = c.indexOf (searchString);
if (point != -1){
endAt = c.indexOf (";", point + searchString.length);
if (endAt == -1) endAt = c.length;
var temp = c.substring (point + searchString.length, endAt);
return temp;
}
return false;
}
function getCookie(){
tempString = checkCookie ("imie=");
if (tempString)
document.form1.imie.value = tempString;
tempString = checkCookie ("nazwisko=");
if (tempString)
document.form1.nazwisko.value = tempString;
tempString = checkCookie ("komputer=");
if (tempString){
if (tempString == "tak")
document.form1.komputer[0].checked = true;
if (tempString == "nie")
document.form1.komputer[1].checked = true;
}
}
// Koniec kodu JavaScript -->
imię
NAME = "imie"
>nazwisko
NAME = "nazwisko"
>
Czy masz w domu komputer?
NAME = "komputer"
VALUE = "tak"
>Tak
NAME = "komputer"
VALUE = "nie"
>Nie
75
Rozdział 6. Okna, ramki i ciasteczka
VALUE = "Ustaw"
onClick = "setCookie()"
>
Formularz jest tworzony w sposób standardowy dla języka HTML. Dla przycisku ustawiana jest obsługa zdarzenia
kliknięcia na funkcję setCookie(). W funkcji tej ustawiane są zmienne określające datę wygaśnięcia ważności ciasteczka
oraz imię i nazwisko użytkownika. Dwie ostatnie dane pobierane są z formularza. Jeśli użytkownik nie wypełni formularza,
są im przypisywane puste ciągi znaków. Zmienna komputer przyjmie wartość tak lub nie, w zależności od tego, które
pole wyboru zostało zaznaczone. Jeśli żadne nie zostało zaznaczone, wartością tej zmiennej będzie undefined . Dalej
ustawiane są trzy ciasteczka, co robimy przypisując własności cookie obiektu document określone wcześniej ciągi
znaków.
Nieco bardziej skomplikowany jest sposób odczytu ciasteczek. Dokonujemy tego przy użyciu funkcji getCookie(), która
jest wywoływana podczas ładowania strony oraz funkcji pomocniczej checkCookie(). Ponieważ getCookie() stosuje
wielokrotnie już używane przez nas konstrukcje, nie trzeba jej chyba bliżej wyjaśniać. Problem może natomiast sprawić
checkCookie(). Jakie ona ma zadanie? Otóż we własności document.cookie znajdziemy wszystkie ciasteczka
odnoszące się do danej strony w postaci ciągu znaków np.:
zmienna1=brak;imie=Marek;zmienna3=154;nazwisko=Kowalski;komputer=tak
Z tego ciągu znaków musimy po pierwsze wyciągnąć interesujące nas zmienne, a po drugie dostać się do ich wartości.
Nasza funkcja jako parametr otrzymuje szukany ciąg znaków. Sprawdza, czy występuje on we własności
document.cookie oraz zapamiętuje miejsce jego wystąpienia. Następnie szuka końca wartości tej opcji, czyli znaku ; .
W przypadku gdyby szukana wartość była ostatnią w ciągu, tzn. na jej końcu nie występowałby znak ; zastosowana
funkcja szukająca indexOf() zwróci wartość 1. Zatem taką sytuację też możemy rozpoznać. Kiedy mamy już indeks
wystąpienia szukanej zmiennej, długość jej nazwy oraz całkowitą długość opisującego ją łańcucha znaków, możemy już w
prosty sposób (przy użyciu funkcji substring()) dostać się do wartości tej zmiennej. Na koniec zwracamy znalezioną
wartość, którą funkcja getCookie() przypisze właściwemu elementowi formularza.
76
JavaScript. wiczenia praktyczne
77
Rozdział 6. Okna, ramki i ciasteczka
[ Pobierz całość w formacie PDF ]
Podstrony
- Indeks
- Ćwiczenia rachunkowe z chemii analitycznej
- Ćwiczenie 2
- English translation of the Rosarium philosophorum
- Orzeszkowa Eliza Marta
- Cooper Jilly Imogena
- Biogramy śźośÂnierzy batalionu im. śÂukasiśÂskiego
- Jo Clayton SQ 01 Shadowplay
- Foster, Alan Dean Damned 02 The False Mirror
- Jana Downs His Guardian Angels 04 Angel Wed
- 151. Sanders Glenda śąadna inna Tylko ja!
- zanotowane.pl
- doc.pisz.pl
- pdf.pisz.pl
- hadwao.keep.pl