2012. augusztus 17., péntek

DOCTYPE, window.event és IE csoda

Különös jelenség a mostani téma.
Egy régi .NET (2.0) web alkalmazás 4.0-ra alakítása után a browser "néha" javascript hibát dobott, de nem mindenkinél.
Annyit tudtunk, hogy amikor egy lenyíló lista dobott egy event-et, akkor elszállt egy generált anonymous javascript method, mert az event.returnValue -ból az event "undefined".

Ennek az ember hogy áll neki nyomozni? Nincs megfogható, jól meghatározható exception, csak tapogatózás. Mert egyik IE-ben dobja, másikban nem stb.

Aztán egy bejegyzés megmutatta az irányt:

Itt van egy utalás az egyik kommentben valamiféle "IE9 Standards Mode"-ra. Tovább kutatva kiderült, hogy ha ezt a doctype-ot kapcsoljuk be, mindenkinél működik. A probléma, hogy az ügyfélnél nem nagyon van IE9, pedig ezt úgy néz ki, ebben javították. Vagyis egy ismert problémáról van szó.

Nem akarok szöveget másolni/fordítgatni, a lényeg, hogy a generált DOCTYPE tag a html elején sokkal fontosabb annál mint sokan tippeljük, egész komoly hatással van a js működésre, feldolgozásra.
Ennél sokkal több cikket lehet találni (pl), érdemes átnézni. Megoldás végül még nem született, de úgy néz ki hogy a régi rendszer fő frame-ében egy régebbi doctype lesz beállítva, az MVC-s lapok masterén, vagy layout-ján pedig egy újabb, és azokon megpróbáljuk elkerülni, kezelni ezeket a hibákat.
Kérdés, hogy egyáltalán a jQuery UI cuccok, meg úgy a jqery majd mennyire lesz kompatibilis melyik doctype-al meg browser verzióval, majd kiderül.

Még egy hasznos js fv, ami kideríti, dob egy alertet hogy jók vagyunk-e doctype ügyileg, jól kezeli-e az aktuális csillagállásban a browser az eventeket.

Nincsenek megjegyzések:

Megjegyzés küldése