W3C konforme OXID Templates mit Edge-Modus "X-UA-Compatible"

Hallo Zusammen,

ich möchte OXID bitten den nervenden Fehler zu beseitigen, der bei der Validierung immer übrig bleibt :slight_smile: Nach meiner Meinung eigentlich unnötig

Line 10, Column 57: Bad value X-UA-Compatible for attribute http-equiv on element meta.

    <meta http-equiv="X-UA-Compatible" content="IE=Edge">

[B]Meine Empfehlung[/B]:

In der Datei /tpl/layout/base.tpl nur den Eintrag in Zeile ca. 15

<meta http-equiv="X-UA-Compatible" content="IE=Edge">

mit folgendem ersetzen

<!--[if IE]>
<!DOCTYPE html>
<meta http-equiv="X-UA-Compatible" content="IE=edge;chrome=1"> 
<![endif]-->
<!DOCTYPE html>

[B]ACHTUNG[/B]: Den DOCTYPE sollte man in der Anweisung setzen, der IE könnte sonst glauben das es etwas Illegales vor dem DOCTYPE ist und wechselt in den Quirks-Modus.

[B]VORTEIL[/B]: Wenn der Internet Explorer auf diese Zeile stößt ändert sich die Engine die verwendet wird. Der IE nutzt jetzt zuerst den besseren Chrom Frame für IE 6, 7, 8 und 9, wenn das Plugin im IE des Users installiert ist. Nur wenn das Crome Frame PlugIn nicht installiert ist nutzt der IE den Edge Modus.

Microsoft dazu: Der Edge-Modus ist nur für Testzwecke vorgesehen, Verwenden Sie diesen [B]nicht[/B] in einer Produktionsumgebung.

Das funktioniert leider so nicht, Doctype und X-UA-compatible funktionieren nicht in conditional comments: https://bugs.oxid-esales.com/view.php?id=4049 und Chrome-Frame ist problematisch: https://bugs.oxid-esales.com/view.php?id=4953. Man könnte evtl. einen http-header in htaccess oder PHP verwenden.

Hallo Frank,

das wäre eine Lösung

<FilesMatch "\.(htm|html|php)$">
    <IfModule mod_headers.c>
        BrowserMatch MSIE ie
        Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie
    </IfModule>
</FilesMatch>

aber dazu müsste OXID die Zeile Ersatzlos entfernen.