http://cyryl.wordpress.com/2007/02/23/opera-jest-zla/ - sprawdzi ktoś czy autor ma rację i czy trzeba jakiegoś buga zgłosić?
Wygląda na bug, nie rozumiem jednak do końca specyfikacji DOM3: http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-getElBId
Pada tam dziwne dla mnie zdanie: "The DOM implementation is expected to use the attribute Attr.isId to determine if an attribute is of type ID.". Przetłumaczy ktoś znaczenie tego?
Już odpowiedziałem:
To zachowanie Opery jest znane i zostało wprowadzone z całą premedytacją przez programistów OS ASA, aby zachować kompatybilność z Internet Explorerem, który ma to tak dokładnie rozwiązane. Pozwala to na uniknięcie problemów z wieloma stronami, które bazują na tym zachowaniu. Szczegóły: http://www.quirksmode.org/bugreports/archives/2005/09/documentgetElementById_may_return_element_with_a_n.html
Niestety, stworzyłem stronę nie quirks mode (w XHTML 1.1) i bug występuje: http://zajec.net/test/getElemById.and.name
Originally posted by Zajec:
Niestety, stworzyłem stronę nie quirks mode (w XHTML 1.1) i bug występuje: http://zajec.net/test/getElemById.and.name
Bo ma występować. Zauważ, że http://www.csb7.com/test/ie_getelementbyid_bug/index.php też jest CSS1Compat. Zastanawiam się, czy nie wywołać dyskusji na ten temat, żeby Opera zmieniła to działanie na zgodne ze standardami. Wszak jest browserjs do takich rzeczy.
Nie widziałem tamtego testcase wcześniej. Moim zdaniem workaround/bug ma prawo występować, ale co najwyżej w quirks mode. Nie w normalnym trybie.
Możebyś wywołał tę dyskusję jednak? Ja przerobiłem swój test-case na bardziej human-readable, możesz go podsunąć.
Jeśli to zachowanie zostało wprowadzone specjalnie, by zachować zgodność z IE, to czemu akurat przykład zaproponowany przez Zajeca działa pod IE (odpalonym pod Wine)?
http://img138.imageshack.us/img138/3199/greenlinekt1.png
A tak ogólniej - moim zdaniem Opera wcale nie powinna tak robić. Mozilla trzyma się standartów, i używając jej na codzień od lat osobiście nie spotkałem skryptu, który by nie działał z powodu tego błędu.
Zupełnie już generalizując i wyolbrzymiając. Skoro Opera lubi się trzymać sposobu działania IE, to proponuję jeszcze traktować style width jako min-width i wliczać do tego dodatkowo border i padding. Wszyscy webmasterzy będą wtedy wniebowzięci
Dodatkowym argumentem jest to, iż IE w Polsce posiada już tylko około 60% rynku. Osobiście pozwalam sobie już robić strony, które IE pokazują komunikat o niezgodności ze standartami z linkiem do wersji alternatywnej. Jeśli Opera będzie dalej tak zapatrzona w IE, to kiedyś będzie mogła otrzymać podobny komunikat...
Originally posted by cyrylas:
Jeśli to zachowanie zostało wprowadzone specjalnie, by zachować zgodność z IE, to czemu akurat przykład zaproponowany przez Zajeca działa pod IE (odpalonym pod Wine)?
Test case Zajca jest ciut inny. Operuje na blokach nie będących elementami formularza. De facto test case Zajca ujawnił nowe na pewno niechciane objawy niezgodnego ze standardami zachowania. Dyskusja na angielskim forum: http://my.opera.com/community/forums/topic.dml?id=179820
No proszę i coś tam udało sie zwojować Jest szansa, że poprawka pojawi się w Kestrelu: http://my.opera.com/community/forums/findpost.pl?id=1948405 Na razie błąd jest naprawiony w kompilacjach wewnętrznych.
Poprawione w sensie, że działa jak w IE, czy jak w Firefoxie?
Originally posted by cyrylas:
Poprawione w sensie, że działa jak w IE, czy jak w Firefoxie?
Skoro już działa jak w IE, to chyba jasne jest, że jeśli mówię, że jest poprawione to będzie działało zgodnie ze standardami, czyli jak w Firefoksie, a o co wszczęta była przecież batalia.
Dobra robota :-) Jeden bug mniej.