Opera jest zła.
I głupia.
Oto prosty przykład. Taki sobie malutki kod:
<input type="text" name="field" value="input #1" />
<input type=”text” id=”field” name=”field” value=”input #2″ />
<input type=”button” onclick=”alert(document.getElementById(’field’).value)” value=”click me!” />
Każdy w miarę inteligenty człowiek powie, że wynikiem powinno być okienko z tekstem “input #2“. Firefox też tak powie. Ale bynajmniej nie Opera. Jej zdaniem powinno być “input #1“. W końcu czemu niby warto zwracać uwagę na atrybut id=”"?
Ten taki idiotyzm Opery właśnie mnie kosztował jakieś dwie godziny pracy i szukania błędu :-/
UPATE: No i się udało. Opera to poprawi ![]()
3 Dotychczasowe komentarze
Leave a reply
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, @quiris ale takie zachowanie występuje również w XHTML 1.1: http://zajec.net/test/getElemById.and.name
Myślę, że najlepiej będzie całą dyskusję przenieść na ten temat na forum. Zapraszam tam również cyryla: http://my.opera.com/polski/forums/topic.dml?id=179725