Режими Internet Explorer

Навколо Internet Explorer склалася ситуація, яка більше не простежується ні з одним іншим браузером - розкид версій починається з 6.0 і закінчується 9.0. Причини використання застарілих версій можуть бути абсолютно різні.

  • Internet Explorer вбудований в операційну систему Windows і недосвідчені користувачі навіть не підозрюють про наявність альтернативи.
  • Корпоративні користувачі з обмеженим доступом не можуть самостійно оновити версію або змінити браузер.
  • Оновлення IE до нової версії відбувається через систему Windows Update, яка часто відключається за вимогами безпеки або для зниження інтернет-трафіку.
  • Деякі додатки, наприклад, банківські, можуть бути «заточені» для роботи тільки під конкретну версію IE.
  • В силу інерції мислення, коли користувачеві подобається та програма, з якою він звик працювати.

Сама компанія Microsoft всіляко заохочує перехід на нові версії Internet Explorer і в 2010 році припинила підтримку IE6 та IE7.

Що стосується розробників сайтів, то для них такий великий набір версій є справжньою проблемою. Кожна версія IE містить свої унікальні помилки, особливості відображення веб-сторінок, а також не підтримує якісь властивості CSS. Одним з радикальних варіантів вирішення проблеми є повна відмова розробника від підтримки певних версій IE. Так, деякі сервіси Google, сайт vkontakte.ru при спробі зайти на них через IE6 видають попередження про те, що ви використовуєте застарілий браузер. З іншого боку, деякі розробники інтернет-магазинів б'ються за кожен браузер, вважаючи, що навіть якщо якимось браузером користується 2%, то відмова від нього призведе до втрати 2% клієнтів.

Через те, що кожна версія IE може відображати сайт за своїм, розробники IE8 виявилися перед складною дилемою - ця версія настільки відрізнялася від попередньої, що при перегляді через IE8 велика частина сайтів «розсипалася». В результаті було прийнято рішення додати режим сумісності; для швидкого перемикання сайтів в цей режим біля адресного рядка додана спеціальна кнопка (рис. 1.6А). Насправді при перемиканні в цей режим браузер починав працювати як версія 7.0. У IE9 пішли ще далі і в ньому вже можна переключатися на IE8 або IE7 (рис. 1.6б).

Мал. 1.6. Кнопка для перемикання в режим сумісності
a - в IE8, б - в IE9

Велика кількість версій IE ускладнюється ще тим, що версії браузера можуть працювати в декількох режимах, породжуючи велику кількість комбінацій, які необхідно враховувати розробнику. Починаючи з версії 8.0, перемикання режимів в браузері робиться через Засоби розробника (), яке простіше викликати при натисканні на клавішу F12. У цьому інструменті є два пункти меню пов'язаних з режимами: Режим браузера (рис. 1.7) і Режим документів.

Мал. 1.7. режими браузера

Вибір режиму браузера визначає наступне:

  • рядок User-Agent, яку браузер відправляє на сервер, в Microsoft називається «агент користувача»;
  • версія для умовних коментарів, яку в Microsoft називають «вектор версії»;
  • режим документа.

Агент користувача є текстовий рядок, що відправляється на сервер для ідентифікації браузера, його версії і операційної системи. Значення User-Agent визначає не тільки браузер, але також пошукових павуків і мережевих роботів. Список можливих значень User-Agent і розбір рядки можна подивитися на сайті http://www.useragentstring.com . У табл. 1.1 наведені значення User-Agent при виборі різних режимів IE.

Табл. 1.1. Значення User-Agent Режим браузера User-Agent Опис IE7 Mozilla / 4.0 (compatible; MSIE 7.0; Windows NT 6.1; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Tablet PC 2.0 ; .NET4.0C; AskTbPTV2 / 5.9.1.14019) Серверу відправляються дані, що браузер IE7. IE8 Mozilla / 4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident / 4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Tablet PC 2.0; .NET4.0C; AskTbPTV2 / 5.9.1.14019) Серверу відправляються дані, що браузер IE8. IE9 Mozilla / 5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident / 5.0) Серверу відправляються дані, що браузер IE9. Режим сумісності IE9 Mozilla / 4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident / 5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Tablet PC 2.0; .NET4. 0C; AskTbPTV2 / 5.9.1.14019) Серверу відправляються дані, що браузер IE7, але значення «Trident / 5.0» відповідає IE9.

У вашому випадку рядок User-Agent може відрізнятися від наведених у таблиці, оскільки вона залежить від версії Windows і її параметрів.

Вектор версії дозволяє за допомогою умовних коментарів визначати версію IE і віддавати для неї окремий код. Умовні коментарі активно застосовуються в верстці для усунення відмінностей в макеті між IE і іншими браузерами. Детальніше про них піде мова пізніше, поки ж ви можете ознайомитися з невеликим прикладом, який показує текст тільки в IE8. Решта браузери ігнорують цей фрагмент, вважаючи його коментарем.

<! - [if IE 8]> <p> У вас браузер IE8. </ P> <! [Endif] ->

Режим документа змінюється за допомогою меню в Засобах розробника (рис. 1.8).

8)

Мал. 1.8. режими документа

Починаючи з версії IE6, є такі режими (табл. 1.2).

Табл. 1.2. Режими документа IE Режим Опис IE5 (режим сумісності) Незважаючи на те, що браузером IE5 вже ніхто не користується, цей режим застосовується у всіх старших версіях IE при перемиканні в режим сумісності. Досить не вказати доктайпів і ви, немов на машині часу, повернетеся в минуле століття до відображення в цьому браузері. IE6 Цей режим працює тільки в версії 6.0. IE7 Стандартний режим браузера IE7 і режим при перемиканні на нього в IE8 і IE9. IE8 Стандартний режим браузера IE8 і режим при перемиканні на нього в IE9. IE9 Цей режим працює тільки в версії 9.0.

Крім перемикання безпосередньо в браузері, задати режим можна через тег <meta>, відправивши HTTP-заголовок X-UA-Compatible.

<Meta http-equiv = "X-UA-Compatible" content = "IE = версія" />

Версія може набувати наступних значень (табл. 1.3).

Табл. 1.3. Режими документа IE Значення Опис 5 Вимушене переключення в режим IE5, доктайпів при цьому ігнорується. 7 Вимушене переключення в режим IE7, доктайпів при цьому ігнорується. 8 Вимушене переключення в режим IE8, доктайпів при цьому ігнорується. 9 Вимушене переключення в режим IE9, доктайпів при цьому ігнорується. EmulateIE7 При наявності доктайпів перемикається в режим IE7, в іншому випадку в режим сумісності. EmulateIE8 При наявності доктайпів перемикається в режим IE8, в іншому випадку в режим сумісності. EmulateIE9 При наявності доктайпів перемикається в режим IE9, в іншому випадку в режим сумісності. Edge Встановлює документ в найбільш новий доступний режим. Для версії 8.0 це режим IE8, для версії 9.0 це режим IE9.

Наприклад, на сайті Яндекса застосовується наступний код для емуляції режиму IE7.

<Meta http-equiv = "X-UA-Compatible" content = "IE = EmulateIE7">

При додаванні даного коду в документ кнопка режиму сумісності (рис. 1.6) в браузері зникає.

Дополнительная информация

rss
Карта