Autor Zpráva
Chamurappi
Profil
Zdravím,
potřeboval bych na jedné stránce potlačit výchozí standardní režim Exploreru 8, ideálně bez detekce prohlížeče na straně serveru. Zdá se, že ten krásně promyšlený zmatek v režimech něco takového neumožňuje. MSDN sice slibuje, že by to jít mělo, ale ukazuje to pouze na případu vyloučení režimu IE7 (což je dost nerealistický scénář, protože sedmička X-UA-Compatible stejně nepodporuje), a o kousek výš de facto popírá, že by mělo jít nějaký režim vyloučit vysvětlením, že rozhodující je vždy nejvyšší uvedené číslo a u toho nevadí, když je vyšší než stávající verze (moc nechápu, proč to takhle vymysleli).

Podle náznaků na MSDN by mělo jít tohle:
<meta http-equiv="X-UA-Compatible" content="IE=9; IE=7">
… ale to akorát způsobí, že osmička schová čudlík na přepnutí režimu => značku vidí, všimne si devítky a jede si v režimu osmičky.

Má někdo nějaký tip?
Yur4Y
Profil
Chamurappi:
o kousek výš de facto popírá, že by mělo jít nějaký režim vyloučit vysvětlením, že rozhodující je vždy nejvyšší uvedené číslo a u toho nevadí, když je vyšší než stávající verze
To je zaujímavé. Nevyjadrím sa priamo k problému, ale skúsil som pre Explorer 9 aplikovať hlavičku "IE=10; IE=8" a stránku zobrazoval v móde IE8. Je možné, že pre IE9 zmenili logiku správania?
Ešte by som podotkol, že Explorer pri prostom refreshi nie vždy zmení mód dokumentu tak, ako káže jeho algoritmus podľa X-UA-Compatible hlavičiek; niekedy sa mi stránka zobrazí v takom móde, ktorý bol nastavený pri predošlom načítaní stránky. Odporúčam otvoriť F12, v ňom zoznam módov dokumentu a tam pozrieť, ktorý z nich je označený ako "predvolené stránkou".
_es
Profil
Chamurappi:
Nestačí použiť vhodnú kombináciu podmienených komentárov a <meta> značiek?
Yur4Y
Profil
_es:
Pokiaľ viem, Explorer umožňuje použiť len veľmi máličko elementov a iných konštrukcií pred <meta http-equiv=X-UA-Compatible> značkami, aby sa mohli uplatniť pravidlá nimi dané. Komentár, aj ten podmienený, je jednou z vecí, ktoré spôsobia, že všetky nasledujúce X-UA-Compatible "hlavičky" budú ignorované.
_es
Profil
Yur4Y:
Komentár, aj ten podmienený, je jednou z vecí, ktoré spôsobia, že všetky nasledujúce X-UA-Compatible "hlavičky" budú ignorované.
Ale ak je ten podmienený komentár ako prvá vec na stránke a v jeho vnútri je tá <meta> značka, tak by to možno mohlo fungovať.
Chamurappi
Profil
Zatím jsem použil na straně serveru detekci řetězce Trident/4.0 v hlavičce User-Agent.


Reaguji na _es:
Podmíněné komentáře se zpracovávají, až když je o režimu jasno. Vyzkoušel jsem, jestli to náhodou nefunguje nějak zázračněji, a ne.

Ale ak je ten podmienený komentár ako prvá vec na stránke […]
V době, kdy cílové zařízení hledá klíčové informace, které potřebuje znát HTML parser (což může být i charset nebo <!doctype>), se stránka předžvýkává jednodušším parserem — ten je rád, že vůbec umí přeskočit komentáře. Bylo by zvláštní, kdyby třeba šlo <meta> značkou v podmíněném komentáři cíleném na devítku přepnout režim na osmičku a dalším komentářem cíleným na osmičku na sedmičku… nebo zpátky na devítku :-)


Reaguji na Yur4Ye:
Je možné, že pre IE9 zmenili logiku správania?
Možná ano. Vysvětlovalo by to, proč si povídání na MSDN protiřečí.

Explorer pri prostom refreshi nie vždy zmení mód dokumentu
Ano, je to trochu náladové, proto jsem používal k pokusům různé domény (aliasy), čímž jsem veškerou umělou inteligenci obešel. Aspoň doufám.

Odporúčam otvoriť F12, v ňom zoznam módov dokumentu a tam pozrieť, ktorý z nich je označený ako "predvolené stránkou".
Tam jsem také koukal.
_es
Profil
Chamurappi:
Bylo by zvláštní, kdyby třeba šlo <meta> značkou v podmíněném komentáři cíleném na devítku přepnout režim na osmičku a dalším komentářem cíleným na osmičku na sedmičku…
Ja som vyskúšal na začiatku stránky kód:
<!--[if IE 8]><meta http-equiv="X-UA-Compatible" content="IE=7"><![endif]--><!DOCTYPE HTML>
A pri otvorení v IE8 sa mi v „nástrojoch vývojára“ zobrazí: Režim prehliadača: IE8, Režim dokumentu: IE7
Opačné poradie:
<!DOCTYPE HTML><!--[if IE 8]><meta http-equiv="X-UA-Compatible" content="IE=7"><![endif]-->
už nefunguje, to sú oba režimy IE8.
Trochu mám v tom zmätok, o prepnutie ktorého z tých dvoch režimov vlastne ide.
_es
Profil
Chamurappi:
Nerieši ten prvý kód v [#7] tvoj dotaz? Alebo to nejako vadí iným prehliadačom?
Chamurappi
Profil
Reaguji na _es:
Ještě jsem se nedostal ke strojům, kde bych to mohl vyzkoušet. Pokud to skutečně funguje tak, že jen osmičku (nikoliv i devítku) to přepne do sedmičkového režimu, tak je to fajn. Byla by to sice odpověď na moji otázku, nicméně předpokládám, že sedmičku ten komentář shodí do quirku (jako jakýkoliv komentář před <!doctype> deklarací), což je v mém případě opět nežádoucí. Prověřím později.
_es
Profil
Chamurappi:
nicméně předpokládám, že sedmičku ten komentář shodí do quirku (jako jakýkoliv komentář před <!doctype> deklarací), což je v mém případě opět nežádoucí.
V IE6 to je v štandardnom móde, takže ani IE7 sa asi nebude správať inak. Nemyslel si namiesto HTML komentára XML deklaráciu? Pre IE asi podmienené komentáre nie sú HTML komentármi.

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