w getAttributes() jest w stanie obsłużyć zarówno przypisania elementów tablic, jak i deklaracje „nieznanych” zmiennych...
Serwis znalezionych hasełOdnośniki
- Smutek to uczucie, jak gdyby się tonęło, jak gdyby grzebano cię w ziemi.
- \par cech, w kt\'f3rej badacze wyr\'f3\'bfniaj\'b9 elementy achajskie (nie wymienili\'9c-\par my tego dialektu w nazwanych wy\'bfej grupach, bo p\'f3\'9fniej nie...
- ze spokojem opuścić element TIM, ponieważ stacje wysyłające ramki typu Probe nie są jeszcze skojarzone z siecią i dlatego nie potrzebują wiedzy na temat,...
- Na obudowie modułu znajduje się osiem diod informujących o stanie modułu, pracy serwonapędów i komunikacji z nimi, port RS232 służący do aktualizacji...
- – Czy jesteście w stanie podjąć długi marsz w tym deszczu?Młoda kobieta o całkiem ludzkim wyglądzie i człowiek – diabeł jęknęli...
- Gdy tak popatrywałem obojętnie na skąpaną księżycowym blaskiem panoramę, wzrok mój przykuła pewna niezwykłość w naturze i układzie jednego elementu...
- mamy do czynienia z określonym następstwem poszczególnych stadiów, z których jedneprzychodzą po drugich, ale z procesem, w którym wszelkie elementy są ze...
- Protokół informacyjny strefy odpowiedzialny jest także za współpracę z protokołem RT MP w uaktualnianiu tablicy ZIT...
- Pewne typy właściwości, na przykład tablice, wymagają własnych edytorów właściwości...
- tetem, szeroką wiedzą i dobrymi po-byłby w stanie rozstrzygnąć dylema-i nawet jeśli czuje jego spadek, to sa-mysłami na rejsy, to nie odniesie...
- społecznej, pozwalając odnajdywać element izolacji świadomościowej równie dobrze w kulturze średniowiecznego chłopa inkaskiego, co w naszych...
Smutek to uczucie, jak gdyby się tonęło, jak gdyby grzebano cię w ziemi.
Oto wiersze od 22 do 31:
var tagInfo = htmlArray[i].split('=');
if (tagInfo[0] != "") {
if (tagInfo[0].indexOf('newsNames') == 0) {
newsNames[newsNames.length] = tagInfo[1];
}
else if (tagInfo[0].indexOf('indexNames') == 0) {
indexNames[indexNames.length] = tagInfo[1];
}
else { eval(tagInfo[0] + ' = "' + tagInfo[1] + '"'); }
}
Każdy element htmlArray zawiera znak równości (=), rozdzielający identyfikator od naprawdę interesującej nas wartości. W każdej iteracji pętli for htmlArray[i] rozbijana jest funkcją split() na znaku =, a uzyskana tak subtablica umieszczana jest w zmiennej lokalnej tagInfo. Jeśli tagInfo[0] nie jest ciągiem pustym, mamy poprawną parę identyfikator + nazwa. Trzeba sprawdzić, czy uzyskany wynik nie jest napisem równym, a to z uwagi na sposób tworzenia tablicy w funkcji split() w JScripcie.
Każda poprawna para należy do jednej z dwóch kategorii: jest albo elementem tablicy, albo zwykłą zmienną. Jeśli dana para ma należeć do tablicy, znów zostanie przyporządkowana do jednego z dwóch typów: albo opisuje łącze strony z nowinkami, albo z notowaniami giełdowymi. Poniższa instrukcja warunkowa określa, co należy zrobić w zależności od zachodzących okoliczności:
if (tagInfo[0].indexOf('newsNames') == 0) {
newsNames[newsNames.length] = tagInfo[1];
}
else if (tagInfo[0].indexOf('indexNames') == 0) {
indexNames[indexNames.length] = tagInfo[1];
165 Rozdział 7 - Ustawienia użytkownika oparte na ciasteczkach
}
else { eval(tagInfo[0] + ' = "' + tagInfo[1] + '"'); }
Z uwagi na konwencję nazewniczą przyjętą w prefs.html, jeśli tagInfo[0] zawiera napis newNames, musi być związana z łączami do nowinek, a wtedy wartość tagInfo[1] jest przypisywana następnemu wolnemu elementowi w newsNames. Jeśli tagInfo[0] zawiera napis indexNames, musi być związana z łączami notowań giełdowych i wówczas wartość tagInfo[1] przypisywana jest następnemu wolnemu elementowi w indexNames. Gdy
tagInfo[0] nie zawiera żadnego z powyższych napisów, musi to być nazwa zmiennej, która ma zostać
zadeklarowana, a jej wartością ma być tagInfo[1]. Kod w wierszu 30 będzie wiedział już, co należy zrobić: else { eval(tagInfo[0] + ' = "' + tagInfo[1] + '"');
Kiedy skończy się działanie pętli for, wygenerowany zostanie następujący kod:
newsNames[0] = 'Barron's Online,http://www.barrons.com/';
newsNames[1] = 'CNN Interactive,http://www.cnn.com/';
newsNames[2] = 'Fox News,http://www.foxnews.com/';
newsNames[3] = 'The Wall Street Journal,http://www.wsj.com/';
− są to łącza do nowości dla inwestorów.
indexNames[0] = 'Dow Jones Indexes,http://www.dowjones.com/';
indexNames[1] = 'The New York Stock Exchange,http://www.nyse.com/';
− to są z kolei łącza do notowań giełdowych.
var investor = 'Not Provided';
var age = 'Not Provided';
var strategy = 'Moderate';
var occupation = 'Not Provided';
var background = 'images/fistthumb.gif';
var face = 'tahoma';
var size = '14';
− a to są zmienne opisujące wygląd strony.
Techniki języka JavaScript:
konwencje nazewnicze jeszcze raz
Poruszyliśmy już temat rozsądnych konwencji nazewniczych. Warto teraz może o tym
pomyśleć, jak powstają zmienne opisujące wygląd strony oraz elementy łącz do nowości
i do notowań. Zaczęło się jeszcze, zanim jakikolwiek kod w dive.html został zinterpreto-
wany, zanim stało się to w prefs.html, po prostu nawet zanim użytkownik po raz pierwszy
cokolwiek poprawił w formularzu w prefs.html. Zaczęło się od nazwania pól formularza.
Każda ze zmiennych zawierających łącza ma identyfikator (na przykład newsNames0 lub
indexNames3) zawierający nazwę listy wyboru w prefs.html. Każda zmienna, opisująca
wygląd strony, ma nazwę odpowiadającą jednemu z elementów formularza, na przykład
background lub size. Nazwa została wstawiona do treści ciasteczka. Starannie przemy-
ślane konwencje nazewnicze nie tylko ułatwiają pracę, ale niektóre rzeczy w ogóle umoż-
liwiają. Zawsze należy dobrze przemyśleć ich użycie w kodzie.
Pamiętajmy, że podane nazwy nigdzie w kodzie bezpośrednio nie występują. Aby sięgnąć
do ich wartości, możemy przeglądać wartości newsNames i indexNames, jednak aby
dotrzeć do zmiennych, musimy znać z góry ich nazwy.
Mamy już wszystkie dane potrzebne do stworzenia strony zgodnie z wymaganiami użytkownika. Kiedy teraz zapiszemy informacje na stronie, nasza rola będzie skończona. Użyjemy metody document. write(), aby umieścić wszystko na stronie. Metodę tę wywołamy ośmiokrotnie – wszystkie wywołania zestawiono i omówiono w tabeli 7.4.
Tabela 7.4. Tworzenie kodu HTML przy pomocy wywołań document.write()
Wiersze Kod
Opis
50–51
document.write('<STYLE type="text/css">
tworzenie arkusza stylów
TD { font-family: ' + face +
'; font-size: ' + size + 'pt; }
</STYLE>');
166
55–56
document.write('<BODY BACKGROUND="'
określenie adresu URL obrazka
+
tła
background.replace(/thumb/, "") +
'">');
77
document.write(investor);
podanie nazwiska inwestora
82
document.write(age);
podanie wieku inwestora
91
document.write(strategy);
określenie strategii
inwestowania
108
document.write(genLinks(news));
dopisanie łącz do stron
z nowościami
114
document.write(genLinks(indexes));