Valami miatt ez a script Firefox alatt nem, csak Chrome alatt működik (Opera alatt nem teszteltem), de eleve nem lett agyontesztelve. Firefox alatt az AJAX-lekérés readyState-je sosem akar 4 lenni, sőt, láthatólag nem is létezik, és erre a hibára a FireBug nekem kevés.
A dolgot megnehezítette némiképp, hogy a HUP nem érvényes XML (a HUP logó eleme nincs lezárva), emiatt a JavaScript saját XML-értelmezőjét nem lehetett ráereszteni, tehát a parsoláshoz nem használhattam sem XPath-t, de még a getElementsByTagName is tiltólistán volt. Így születtek a kódban efféle szépségek:
var nodeList = xml.childNodes[23].lastChild
.previousSibling.lastChild.childNodes[1]
.childNodes[3].childNodes[11].childNodes[0]
.childNodes[3].childNodes
Amúgy a „csakműködjönmár” fejlesztési irányelvet követve a kód is elég csúnya, Isten ötpercenként le is öl miatta egy-két kiscicát.
A script elérhető itt.
¹Azért nem a sima /tracking/$USERID oldalon, hogy szerveroldalról követhető legyen, hány lekérés tudható be a scriptnek.
- numen blogja
- A hozzászóláshoz be kell jelentkezni
- 836 megtekintés
Hozzászólások
S tényleg. Ahhoz képest, hogy doctype szerint XHTML 1.0 Strict, egy fia img sincs szabályosan lezárva...
- A hozzászóláshoz be kell jelentkezni
Azt mondjuk külön szomorkásnak tartom, hogy a Javascript nem kezeli normálisan a tagsoupot. Elvileg ha becsatoltam volna valahova a DOM-fába, akkor működhetett volna a dolog, de akkor már inkább childNodes-szal szórakozok.
Mondjuk az is megjegyzendő, hogy ez az első alkalom, hogy bármi hátrányom származott volna abból, hogy a HUP nem valid XHTML ☺
int getRandomNumber() { return 4; } // ← aláírás
//szabályos kockadobással választva. garantáltan véletlenszerű. xkcd
- A hozzászóláshoz be kell jelentkezni
subscribe
--------------------------------------------------------------------------
színes
- A hozzászóláshoz be kell jelentkezni