JavaScript - vyhľadávanie v stránke

Programovacie jazyky, rady, poradňa...
DomCZo
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 235
Registrovaný: 16 okt 2006, 22:49

Príspevok od používateľa DomCZo »

Kukni si tú prílohu prosím. Máš pravdu, asi to robí to isté. Skús dať vyhľadať že vlakovka. Slovo vlak sa tam nachádza pred slovom vlakovka, preto keď začnem písať V..L..A..K (vlak vysvieti) ..O a už to nevyhľadá nič.

// Asi nie je dobrý nápad tam dávať onkeyup, lebo to cez BUTTON pracuje správne, keď sa nevyhľadáva furt písmenko za písmenkom.
Prílohy
search.zip
(2.55 KiB) 156 stiahnutí
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

V súbore search2.js pridaj do funkcie simpleSearchHighlight (na začiatok)

Kód: Vybrať všetko

first = true;
A vo funkcii cleanWord oprav riadok

Kód: Vybrať všetko

an = (i <= node.childNodes.length - 2) ? node.childNodes[i+1] : null;
(má tym byť <= a nie iba <)
PS: Na postupné hľadanie by bolo efektívnejšie upraviť celý skript (nie je treba všetko vždy vymazať a nájsť znova)
DomCZo
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 235
Registrovaný: 16 okt 2006, 22:49

Príspevok od používateľa DomCZo »

Hej, teraz to pracuje úplne super.

A chcem sa len opýtať, na začiatku JavaScriptu má byť to var first = true?

Kód: Vybrať všetko

var   first = true;

function highlightWord(node,word)
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

DomCZo napísal:Hej, teraz to pracuje úplne super.

A chcem sa len opýtať, na začiatku JavaScriptu má byť to var first = true?

Kód: Vybrať všetko

var   first = true;

function highlightWord(node,word)
Má to tam byť (aj keď stačilo by aj "var first;"). To nadefinuje globálnu premennú first (vo funkcii simpleSearchHighlight sa nastaví true, a neskôr, keď sa nájde nejaký vyhovujúci text, tak sa to nastaví, vo funkcii highlightWord na false).
PS: Lepšie by bolo, keby si dal ten editbox a tlačítko do divu, s absolútnou polohou 0,0 (tak by pri tom ako sa stránka odskroluje, ostal ten edit hore [a posunul by sa iba zvyšok stránky])
DomCZo
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 235
Registrovaný: 16 okt 2006, 22:49

Príspevok od používateľa DomCZo »

Áno, aby stránka neskákala hore, dole, hore, dole...
Onkeyup som dal aj tak preč, lebo pri väčšej stránke to dlho vyhľadáva, aspoň na mojom pomalom kompe.

Kód: Vybrať všetko

<form onsubmit="cleanHighlight(); simpleSearchHighlight(); return false;">
<input type="text" id="nick">
<input type="submit" value="Označiť">
</form>
Tak díki za pomoc.
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Vyskúšaj toto
Prílohy
0.rar
(1.76 KiB) 205 stiahnutí
DomCZo
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 235
Registrovaný: 16 okt 2006, 22:49

Príspevok od používateľa DomCZo »

To je veľmi pekné pod FF, len pod IE 5.0 mi to nejde.
Napísať odpoveď