Internet Explorer 8 - jste připraveni?
Nebude trvat dlouho a přijde Beta2 nové verze Internet Exploreru. Tentokrát s číslem 8 (IE8). Přinese mnohá pozitiva, novinky a také trochu práce... IE8 se totiž snaží důsledně dodržovat standardy (interoperabilita vládne IT světu) a podle toho také zobrazuje jednotlivé stránky. Jenže tady narážíme na drobnou komplikaci. Ne všechny weby standardy dodržují a tudíž se zobrazení nemusí zrovna vyvést v celé kráse. Ve zkratce řečeno, velká část webů v IE8 nebude s nejvyšší pravděpodobní zobrazena správně.
Abyste se jako tvůrci stránek, popř. správci serverů vyhnuli možným problémům, je nutno udělat dva zásadní kroky. Buďto upravit web tak, aby byl v souladu se standardy a tudíž byl zobrazen správně, anebo použít režim emulace.
IE8 totiž umí emulovat rendering verze IE7 a je tedy schopen zobrazit web správně i v případě, že v nativním režimu stránka nefunguje. Co pro to musíte udělat?
Microsoft nabízí řešení v podobě metaznaku X-UA-Compatible, který může být použit několika způsoby a v několika režimech (viz tabulka níže):
- je umístěn přímo v HTML kódu webu či stránky
- je nastaven na serveru ve vlastnostech webu či celého webového serveru
Návod pro použití přímo v kódu, popř. pro nastavení webového serveru IIS najdete v publikovaném KB článku na adrese https://support.microsoft.com/kb/952030.
Pro správce serverů Apache 2.2 je orientační návod níže. Podotýkám, že je nutno nastavení vždy otestovat, než je vpuštěno do produkčního prostředí.
Nastavení response headeru na serveru
- Otevřete httpd.conf (či jiný konfigurační soubor) v textovém editoru
- Přidejte/odkomentujte “LoadModule headers_module modules/mod_headers.so”
- Přidejte následující konfigurační sadu na konec souboru httpd.conf
<IfModule headers_module>
Header set X-UA-Compatible: IE=EmulateIE7
</IfModule>
- Uložte httpd.conf, restartujte Apache
Nastavení response headeru v adresáři
- Otevřete httpd.conf (či jiný konfigurační soubor) v textovém editoru
- Na zvolený adresář (v příkladu ie8test) nastavte override:
<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/ie8test">Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
(Pozn.: AllowOverride All přikazuje server číst soubor .htaccess v daném adresáři)
- Vytvořte v adresáři soubor .htaccess
- Otevřete soubor .htaccess a zadejte následující:
<IfModule headers_module>
Header set X-UA-Compatible: IE=EmulateIE7
</IfModule>
- Uložte soubor, restartujte Apache
Výše uvedené příklady definují chování IE8 tak, aby emuloval renderování starší verze IE7. Nicméně daným metaznakem můžete IE8 donutit k dalším odchylkám od jeho nativního chování:
Response header | Hodnota | Popis |
X-UA-Compatible | IE=5 | Renderuje obsah v nativním IE5 režimu |
X-UA-Compatible | IE=7 | Renderuje obsah v nativním IE7 režimu, ovšem ignoruje <!DOCTYPE> |
X-UA-Compatible | EmulateIE7 | Jako IE7 + se řídí při renderování obsahu direktivou <!DOCTYPE> |
X-UA-Compatible | IE=8 | IE8 nativní renderovací režim |
Více informací o kompatibilitě najdete na MSDN stránce Defining Document Compatibility.
Protože tento článek nepojme veškeré aspekty přicházejícího IE8, určitě doporučujeme další zdroje informací, kde najdete fakta a doporučení. Ať už pro vývoj, zabezpečení anebo přehled funkcí:
- Domovská stránka IE8
- IE8 Readiness Toolkit (pro vývojáře i tvůrce stránek)
- Internet Explorer Team Blog
- Microsoft Interoperability Principles
- KFL