Automatyczne przypisanie ID do znaczników META

W trakcie pracy nad ostatnim projektem natknąłem się na jeden z dziwniejszych błędów JavaScript. Do znaczników meta są automatycznie przypisywane atrybuty id o wartości takiej, jak atrybut name. Napisałem krótki przykład ilustrujący ten problem (wersja dla HTML 4.01). Po kliknięciu na dany przycisk wyświetlany jest typ znacznika o danym atrybucie. W IE 6.0, IE7 RC1 i Operze 9.01 otrzymujemy META, podczas gdy Firefox 2.0 wyświetla poprawnie P.

Zgodnie ze specyfikacją znaczników META na stronie W3C atrybut id nie jest dla nich prawidłowy. Nie udało mi się też nigdzie znaleźć powodu ani nawet opisu takiego zachowania. Kliknięcie na przyciski powinno wyświetlać wartość SPAN. Inne zachowanie jest nieprawidłowe.

Jeśli macie jakieś informacje na ten temat – dajcie znać.

Aktualizacja. Praktycznie pięć minut po kliknięciu ”Publikuj“ znalazłem przyczynę problemu. Moje początkowe założenia były niewłaściwie – problem nie dotyczy wyłącznie znaczników meta. Zgodnie z tym Raportem błędów na stronie niezastąpionego PPK metoda document.getElementById(foo) zwraca w IE elementy z atrybutem name równym foo. Opera świadomie stosuje takie samo rozwiązanie w celu rozwiązania problemów z niektórymi ważnymi stronami, oczekującymi takiego właśnie podejścia. Dla porządku dodałem jeszcze jeden przykład ilustrujący problem.

Aktualizacja 2. Zaczynam podejrzewać międzynarodowy spisek, chociaż jednocześnie pewną ulgę. Kilka godzin po moim poście, Jeremy Keith opublikował wpis “Names and IDs” na ten sam temat. Pozostaje mi się cieszyć tylko, że nie tylko taki szary ludek jak ja miał z tym problem…

Ten wpis został opublikowany w kategorii HTML i oznaczony tagami , . Dodaj zakładkę do bezpośredniego odnośnika.

Możliwość komentowania jest wyłączona.