Kāds ir iemesls, kāpēc pārlūkprogrammas nepareizi atpazīst:
<script src="foobar.js" /> <!-- self-closing script element -->
Atzīts tiek tikai šis:
<script src="foobar.js"></script>
Vai tas lauž XHTML atbalsta koncepciju?
Piezīme: Šis apgalvojums ir pareizs vismaz visiem IE (6-8 beta 2).
XHTML 1 specifikācijā teikts:
С.3. Elementu minimizācija un tukšu elementu saturs
Ja ir dots tukšs elementa eksemplārs, kura satura modelis nav
EMPTY
(piemēram, tukšs virsraksts vai rindkopa), neizmantojiet minimizēto formu (piemēram, lietojiet<p> </p>
, nevis<p />
).
XHTML DTD skriptu elementus norāda kā:
<!-- script statements, which may include CDATA sections -->
<!ELEMENT script (#PCDATA)>
Internet Explorer 8 un agrāka versija neatbalsta XHTML analizēšanu. Pat ja izmantojat XML deklarāciju un/vai XHTML doctype, vecā IE joprojām analizē dokumentu kā vienkāršu HTML. Un vienkāršā HTML netiek atbalstīta pašslēgšanas sintakse. Noslēdzošā slīpsvītra tiek vienkārši ignorēta, ir jāizmanto tieša aizvēršanas tags.
Pat pārlūkprogrammas ar XHTML analizēšanas atbalstu, piemēram, IE 9 un jaunākas, joprojām analizēs dokumentu kā HTML, ja vien dokuments netiks pasniegts ar XML satura tipu. Bet šādā gadījumā vecā IE vispār neatspoguļos dokumentu!
Atšķirībā no XML un XHTML, HTML nepazīst pašslēgšanas sintaksi. Pārlūkprogrammas, kas interpretē XHTML kā HTML, nezina, ka /
rakstzīme norāda, ka tagam jābūt pašaizverošam; tā vietā tās to interpretē kā tukšu atribūtu, un analizators joprojām domā, ka tags ir 'atvērts'.
Tāpat kā <script defer>
tiek uzskatīts par <script defer="defer">
, <script />
tiek uzskatīts par <script /="/">
.