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í:

- KFL