Autor Zpráva
Snekobra
Profil
Dobrý den.
Chtěl bych říct že Chamurappi si v článku K.32 Explorerova oběť nevšiml že IE6 blbne ve zpracování entit LT a GT.
Zde je demonstrační kód

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type='text/css' href='postupne.css'?>
<html:html xmlns:html='http://www.w3.org/1999/xhtml'><html:title>Hovadská chyba Hexploreru (hex - čarodějnice)</html:title>

<html:ul>    <html:li>Validátor XHTML mi přijde jako všeobecně hloupější, protože povoluje
    některé perverzní výrazy, jako třeba odkaz v odkaze (specifikace to
    však zakazuje). Kdo nevěří, nechť si v xhtml dokumentu zvaliduje
    tento zápis: <html:code>&lt;a href="#"&gt;jsem&lt;span&gt; &lt;a
    href="#"&gt;validní&lt;/a&gt;&lt;/span&gt; stránka&lt;/a&gt;</html:code>.</html:li></html:ul>
<html:p>Jak je toto možné?!?!? &lt;a href="#"&gt;KLIK NA ME&lt;/a&gt; &apos; se přeci musí zobrazit? <x/><html:br/>
Vypadá to že explorer &lt;OBSAH&gt;&apos;&quot;&amp;entity lt a gt nějak převádí do markupu (vpravdě blbě)
<html:br/>třeba zde &lt;VIDIS ME EXPLOREŘE??&gt;<html:br/>Viděli jste?</html:p>
</html:html>

V tomto příkladě se nezobrazí markup ale jen obsah elementu A.

Soubor postupne.css nemusí vůbec existovat,
ale musí na něho vést xml-stylesheet to je jasné.

Problém tkví v tom že tento kód
&lt;OBSAH&gt;
se nezobrazí (ale zbytek dokumentu ano)
Správné zobrazení je <OBSAH> - takto se to zobrazí v jiných browserech.

&lt;a href='#'&gt;OBSAH&lt;/a&gt;
se také nezobrazí (ale zbytek dokumentu ano)

&lt;a href='#'&gt;OBSAH&lt;/a
způsobí zahození celého zbytku dokumentu (ovšem ne začátku)

Moderátor Chamurappi: Neobaluj prosím celý příspěvek mezi značky [pre] a [/pre]. Dovolil jsem si také doplnit odkaz, jen pro pořádek…
Fisir
Profil
Reaguji na Snekobru:
Hmmm, to je hezké, ale celý text příspěvku do [pre] jít nemusí a nehlásí se to tady. Hlásit to musíš přímo jemu.
Chamurappi
Profil
Reaguji na Snekobru:
Chamurappi si v článku k.32 Explorerova oběť nevšiml že IE6 blbne ve zpracování entit LT a GT
Není problém jen s &lt; a &gt;, ale obecně všechny entity se vyhodnocují dvojmo. Myslím, že se stejně chovají i Explorerové 7 a 8. Všiml jsem si toho o mnoho let později po napsání Explorerovy oběti, když jsem zkoušel, jestli bych mohl vyrobit anglickou verzi českého validátoru, která by používala opravdové XHTML. Tuším, že jsem i našel řešení užívající <![CDATA[<]]> (takže stále šlo mít jednotný kód pro Explorer i pro prohlížeče s normální podporou XHTML), ale možná si to pamatuji špatně.

Váhal jsem, jestli tuto informaci doplnit do článku, protože je docela komplikovaná na popsání a účelem mého článku bylo spíš upozornit na zajímavost typu „nějak to jde“, nechtěl jsem poskytovat detailní návod. Mohl bych se tedy rozpovídat mnohem víc (i třeba o problémech v JS DOMu) a závěr by stejně byl, že to opravdu nějak jde…


Reaguji na Fisira:
Hlásit to musíš přímo jemu.
Já si toho všimnu i tady. Jsem rád, že to konečně někdo někam napsal :-)
Snekobra
Profil
Děkuji.
Ještě bych řekl že IE6 občas chybuje při použití xml:atributu ale nemám při ruce ten
určitý kód.

Ještě něco.
Jednou jste měl na webylonu odkaz na B.22 Hardwarově akcelerovaná pohádka.
Co to bude?
Chamurappi
Profil
Reaguji na Snekobru:
IE6 občas chybuje při použití xml:atributu
Teď asi nerozumím. Jakého atributu konkrétně?
Jmenné prostory fungují tak, že výchozí jmenný prostor pro elementy se deklaruje pomocí xmlns (samotného, nikoliv xmlns:něco), ale výchozí jmenný prostor pro atributy je vždy prázdný řetězec. XHTML je tedy navržené tak, že elementy jsou ve jmenném prostoru http://www.w3.org/1999/xhtml, ale atributy už vlastně ne, to jsou jen takové anonymní drobky přilepené na XHTML elementy. Jinými slovy: element <html:a> by měl fungovat s atributem href a nikoliv s html:href.

Jednou jste měl na webylonu odkaz na B.22 Hardwarově akcelerovaná pohádka. Co to bude?
Asi nic :-)
Loni v prosinci jsem napsal článek na téma hardwarově akcelerovaných CSS animací a přechodů, ale jedna z jeho klíčových myšlenek se mi při pokusech pár hodin před plánovaným vydáním nepotvrdila. To mi zkazilo chuť se v tom tématu dál šťourat. Možná to někdy opravím a dopíšu…

Vaše odpověď

Mohlo by se hodit

Nezapomeňte na odkaz na živou ukázku problému.

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0