Další chyba v podpoře XML v Internet Exploreru

Máte XHTML stránky, které generujete jako XML dokument třeba pomocí XSLT? A už se vám stalo, že tyto stránky byly v Internet Exploreru po vygenerování úplně rozhozené, přesto, že šablona od grafika se zobrazovala správně?

S podobným problémem jsem se nedávno potýkal. Na jednom projektu se vygenerované stránky v Internet Exploreru zobrazovaly s naprosto rozhozeným layoutem. Zatímco šablona byla zobrazena správně:

Požadovaný vzhledPožadovaný vzhled

Vygenerovaná stránka byla zobrazena špatně:

Vzhled v Internet ExploreruVzhled v Internet Exploreru

Když už mě nenapadalo, co by mohlo Internet Exploreru vadit, začal jsem vygenerovaný dokument postupně upravovat do podoby původní šablony (včetně odřádkování a mezer), abych zjistil, která úprava povede ke změně renderování v Internet Exploreru. Tím jsem odhalil jeden drobný rozdíl mezi těmito dokumenty. Zatímco v šabloně byl prázdný tag div zapsán v nezkráceném tvaru <div></div>, vygenerovaný dokument obsahoval zkrácený zápis prázdného tagu <div /> (ještě dodám, že stejná chyba se projevovala i při zápisu tagu bez mezery <div/>). Ačkoli jsou si tyto dva (tři) zápisy v XML rovnocenné, Internet Explorer (a to i ve verzi 8.0.6001.18241IC – beta 2) si, jak už to u něj bývá, „myslí“ něco jiného — zkrácený zápis prázdného tagu div považuje za otvírací tag, který není uzavřený a tím rozhodí celý layout stránky.

Pomoc je naštěstí jednoduchá — stačí všechny výskyty zkrácených zápisů po vygenerování stránky nahradit nezkrácenými alternativami.

Publikováno 29. 9. 2008 20:07