Riešenie konfliktu IE s MIME typom XHTML 1.1

Odstránime niekoľko fám a nedorozumení. Dva typy riešení:
1. zásah do správania sa IE
2. serverom riadené posielanie hlavičiek podľa typu prehliadača
Máte ešte tretie riešenie:
3. vykašľať sa na 1.1 a písať v 1.0

Zásah do IE

Bežne sa IE pri načítavaní stránky vo formáte XHTML 1.1 s doporučeným nastavením MIME typu správa tak, že chce stránku uložiť namiesto jej zobrazenia.
Je to spôsobené tým, že tento MIME typ application/xhtml+xml proste IE nepozná.
Zásahom do registry sa to však dá odstrániť.
Uložte nasledujúci text do súboru xhtml_mime.reg a spustite ho.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/xhtml+xml]
„CLSID“=“{25336920-03F9-11cf-8FD0-00AA00686F13}“ „Encoding“=hex:08,00,00,00 „Extension“=“.xhtml“
Nemusíte ani pripomínať, že toto si veru neurobí každý. Je to ale dobrý tip pre webmastrov, ktorí sa chcú zachovať korektne ale zároveň trvajú na formáte XHTML 1.1
Riešenie napadne každého, kto si prečíta MIME type detekciu v IE

Riešenie meniace MIME typ skriptom

<?php
if ( stristr($_SERVER[„HTTP_USER_AGENT“],“Mozilla/4.0″) &&
!stristr($_SERVER[„HTTP_ACCEPT“],“application/xhtml+xml“) )
{
header(„Content-type: text/html“);?>
<!DOCtype HTML PUBLIC „-//W3C//DTD HTML 4.01//EN“ „http://www.w3.org/TR/html4/strict.dtd“>
<html lang=“sk“>
<?php else {
header(„Content-type: application/xhtml+xml“);?>
<?xml version=“1.0″ encoding=“utf-8″?>
<?xml-stylesheet href=“/css/mozilla.css“ type=“text/css“?>
<!DOCtype html PUBLIC „-//W3C//DTD xhtml 1.1//EN“ „http://mozilla.mathiesen.info/DTD/xhtml11.dtd“>
<html xmlns=“http://www.w3.org/1999/xhtml“ xml:lang=“en“>
<?php }?>
Autori píšuci v PHP si z toho už vypreparujú svoje.

Pre vrtákov

Nie je to žiadny zázrak – IE sa nenaučí, čo nevie a proste taký je život :-) Nečiním si nárok na objav storočia :-)

Môže sa Vám ešte páčiť...

2 komentáre

  1. rony píše:

    Skor je zaujimave toto:
    Proč není povoleno posílat dokument XHTML 1.1 jako text/html?
    XHTML 1.1 je a má být čisté XML. Nemůže být spolehlivě posláno zastaralým browserům. Proto také XHTML 1.1 dokumenty musí být poslány s media typem založeným na XML, jako je application/xhtml+xml.