advAJAX, IE i „a”

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 jakieś 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, 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ć. Dziwne to bardzo. 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 ;)

One thought on “advAJAX, IE i „a””

  1. 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

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *