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 komentarzy do tej pory

  1. quiris on

    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

  2. Zajec on

    Niestety, @quiris ale takie zachowanie występuje również w XHTML 1.1: http://zajec.net/test/getElemById.and.name

  3. quiris on

    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


Zostaw odpowiedź