advAJAX, IE i "a"

tech • 262 słowa • 2 minuty czytania

Dziś miałem nie małe jazdy z powodu pewnego denerwującego błędu, który nagle zaczął mnie ostro “molestować”. I to tylko pod nieszczęsnym IE, w kodzie wykorzystującym obiekt advAJAX (najlepsza polska biblioteka wspomagająca obsługę obiektu XMLHttpRequest i ułatwiająca wykonywanie zapytań AJAX).

Wszystko ładnie i pięknie działało, aż do pewnego momentu, kiedy to pojawił się ów nieszczęsny problem. Nagle, gdy w jakiejś funkcji JavaScript próbowałem odwoływać się do obiektu advAJAX-a to IE zwracał mi taki oto błąd:

Obiekt nie obsługuje tej właściwości lub metody

Bardzo się dziwiłem, mocno wkurzałem, a nerwy coraz bardziej mnie ponosiły. Bo wszystko działało i nagle się zje*ało i to tylko pod IE. Kombinowałem z kodem na różne sposoby, usuwałem, wywalałem, dodawałem, nawet prawie cały kod wyleciał, a błąd nadal się pojawiał.

Gdy tylko przeniosłem odwołanie do advAJAX-a poza funkcję to problem znikał i wszystko zaczynało dobrze działać. Nie mogłem pojąć wtf! Poruszyłem nawet ten temat na forum.php.pl, ale nikt nie zdążył jeszcze zareagować.

Wreszcie po ciężkich bojach i załamaniach nerwowych, atakach wściekłości i napadach nienawiści, bezradności i agresji, udało mi się ostatecznie zidentyfikować źródło tego problemu.

Przyczyną tego stanu rzeczy był element, a dokładniej div z identyfikatorem “a” (<div id="a">) znajdujący się w dokumencie HTML. Ale mimo, że znalazłem przyczynę problemu, to dalej nie potrafię tego sensownie wyjaśnić. Na szczęście po zmianie na inny identyfikator lub zmianach struktury strony wszystko wróciło do normy.

Jest to dziwny przypadek, bo tylko, gdy adxAJAX znajdował się w funkcji był problem, a gdy poza nią owego problemu nie było. Dlaczego akurat “a”? Tego nie wiem… i nie jestem pewny czy się kiedyś dowiem ;)

Komentarze (1)

jarkiPL avatar
jarkiPL
20080822-111628-jarkipl

Witam odpowiedz na problem z “a” jest w funkcji advAJAX.scan ale co robi dokladnie funkcja to nie wiem narazie sam rozgryzam advajax

Dodaj komentarz

/dozwolony markdown/

/nie zostanie opublikowany/