Сайт о телевидении

Сайт о телевидении

» » Подключенная страница рассчитана на режим документов 7. Режимы Internet Explorer. Отключение обновлений списка

Подключенная страница рассчитана на режим документов 7. Режимы Internet Explorer. Отключение обновлений списка

Да-да. Если ваш код отлично работает в Developer Preview, это совершенно не значит, что он заработает в релизной версии, которая внезапно одномоментно раскатится паре десятков миллионов человек по всему миру. Но вы ни в коем случае не занимайтесь детектом версии по юзер-агенту!

Фиг с ним, с Developer Preview. В их прекрасной поделке нужно отличать версию оси, под которой она работает! Я серьёзно.
Вот сидят люди. В трудовой у них, наверняка, написано что-то типа Senior Software Architect. Придумывают стандарт PointerEvents , в котором, чин чинарём, всё по-взрослому - специальный флаг navigator.pointerEventsEnabled показывает, поддерживает ли браузер пойнтер-события или нет. Чтобы, понимаешь, никто ничего по юзер-агенту не детектил, а всё как в нормальных браузерах.

А потом внезапно выясняется, что у тех же людей обработка жестов падает в IE10/Win7. Вот прям в msdn-е так и написано:

Note The APIs we discuss in this section aren"t supported in Windows 7 or earlier.

msdn.microsoft.com/en-us/library/ie/dn433243%28v=vs.85%29.aspx

Так что помимо 20 разных версий IE у вас есть как минимум две разных версии ОСи - Win7 и Win8. На самом деле, их больше - есть ещё Windows Phone и Windows RT, а в Windows 8 ещё есть два режима браузера - метро и десктоп. Они все отличаются. Нам повезло, мы не нашли прям заметных багов, чтобы держать отдельные ветки кода ещё и под эти оси - не факт, что вы окажетесь столь же удачливыми. Ну что, сколько там версий IE получилось? Я уже запутался, но, наверное, под сотню.

А теперь - десерт! Вот допустим вы просто пишете веб-странички, вам плевать на режимы браузера и вы вообще недоумеваете, чего париться - сайт ведь не может сам перейти в какой-нибудь режим совместимости, правда?

У меня есть для вас плохие новости, ребята. Заходите вот сюда:
iecvlist.microsoft.com/ie10/201206/iecompatviewlist.xml
И ищите там свой сайт.

Знаете, что это? Это глобальный Compatibility List, в который заносятся сайты, которые, по мнению Майкрософт, нужно показывать в каком-нибудь из режимов совместимости.

Нет, серьёзно, они отсматривают весь Интернет и составляют реестр сайтов, которые плохо себя вели!

Знаете, как сайты попадают в этот список? Майкрософт выпускает превью-версии своих браузеров. В них есть специальная кнопочка в адресной строке - показать этот сайт в режиме совместимости. Майкрософт собирает анонимную статистику - если в эту кнопку часто тыкают, сайт попадает в реестр.

Серьёзно, они этого даже не скрывают. Похоже, даже немножечко гордятся.
msdn.microsoft.com/ru-ru/library/gg699485%28v=vs.85%29.aspx

Выбраться из этого списка очень просто - написать в саппорт Майкрософт, ага.

Ну и вишенка на торте: допустим я вас убедил и вы регулируете, в каком режиме показывать страницу, с помощью специальной меты , дабы избежать ненужных проблем. Так вот, в IE11 (по крайней мере в RTM-версии, сейчас лень проверять) она не работает - факт нахождения в списке совместимости приоритетнее заданного вебмастером X-UA-Compatible!

Дорогая Microsoft! Прекрати, пожалуйста, над нами издеваться и вкрути движок Gecko в свой так сказать продукт.

Теги: Добавить метки

Вокруг 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. Остальные браузеры игнорируют этот фрагмент, считая его комментарием.

У вас браузер IE8.

Режим документа меняется с помощью меню в Средствах разработчика (рис. 1.8).

Рис. 1.8. Режимы документа

Начиная с версии IE6, имеются следующие режимы (табл. 1.2).

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

Версия может принимать следующие значения (табл. 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.

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

Инструкция

При обнаружении браузером Internet Explorer веб-страницы, несовместимой с текущей версией обозревателя, в адресной строке появляется специальная кнопка «Представление совместимости». Чтобы увидеть ее, необходимо вызвать главное системное меню, нажав кнопку «Пуск», и перейти в пункт «Все программы». Запустите приложение Internet Explorer и перейдите на нужную интернет-страницу. Определите текущее состояние режима совместимости - активное состояние режима отображается цветной кнопкой, отключенное - схематической. Для отключения активного состояния режима совместимости, просто нажмите цветную кнопку.

Раскройте меню «Сервис» верхней панели инструментов браузера Internet Explorer и укажите пункт «Параметры режима представления совместимости». Снимите флажок в строке «Отобразить все узлы в режиме представления совместимости» в открывшемся диалоговом окне и подтвердите сохранение сделанных изменений, нажав кнопку OK.

Альтернативным методом отключения представления страниц в режиме совместимости может служить использование мета-элемента, являющегося одноименным заголовком ответа сервера, X-UA-Compatible, имеющего значение IE=edge:
тег meta http-equiv="X-UA-Compatible" content="IE=edge" / тег.
Обратите внимание на то, что значение IE=edge принудительно включает последний возможный режим работы браузера, безотносительно к его текущей версии. Таким образом, представление интернет-страниц в режиме совместимости с предыдущими версиями будет отключено программно. В Internet Explorer версии 8 режим edge приведет к отображению страниц только на уровне данной версии, в версии 9 - на следующем уровне. Рекомендуется ограничить использование этого режима тестовыми веб-страницами и другими целями, не имеющими отношения к производству, поскольку результаты неправильного отображения страниц до конца не изучены.

Источники:

  • Совместимость мета-тегов и блокировок в будущем

Каждое серьезное обновление интернет-обозревателя Internet Explorer вместе с существенным улучшением браузера приводит и к разного рода нестыковкам со стандартами, использовавшимися в версии предыдущей. Internet Explorer 9 - не исключение, но в этом варианте браузера производители предусмотрели возможность переключения просмотра страниц в режим совместимости с предыдущими версиями.

Вам понадобится

  • Internet Explorer 9.

Инструкция

Запустите Internet Explorer. Если на рабочем столе нет ярлыка этой программы, то откройте главное меню ОС и в поле поискового запроса наберите название приложения. Впрочем, достаточно будет трех букв int, чтобы ссылка на запуск веб-обозревателя появилась в первой строке результатов поиска. Кликните ее.

Раскройте в меню браузера раздел «Сервис». Если меню не отображается в окне приложения, нажмите клавишу Alt. Оно появится под заголовком окна. В разделе «Сервис» выберите наиболее сложно сформулированный пункт - «Параметры режим а представления совместимости ».

Поставьте отметку в чекбоксе у надписи «Отображать все веб-узлы в режим е представления совместимости », когда на экране появится окно с настройками этого режим а. Таким способом вы включите самый «жесткий» вариант режим а совместимости - браузер будет использовать его для всех страниц, даже тех, которые в этом не нуждаются.

Если вы поставите отметку в поле «Добавить обновленные списки веб-узлов с веб-узла Майкрософт», режим совместимости будет задействован только для тех сайтов, несовместимость которых с этой версией браузера известна корпорации Microsoft.

IE является встроенным браузером операционной системы Windows всех версий (за исключением Windows 10, где таковым является совершенно новая программа Microsoft Edge). По заявлениям производителя продукта версия IE 11 наиболее доработанная и качественная. Microsoft обещает увеличение скорости просмотра страниц по сравнению со старыми версиями.

Новая IE 11 иногда неправильно отображает страницы

Достигается такой эффект за счёт не только программного ускорения, но и аппаратного. Но не стоит забывать, что основным фактором скорости загрузки данных в интернете является скорость, предоставляемая вашим интернет-провайдером. То есть, если ваш роутер даёт только 256 кбит/с, к примеру, то естественно никакой браузер не позволит вам работать с большей скоростью.

Для чего нужен режим совместимости в IE?

О популярности встроенного браузера Internet Explorer 10 или 10 в операционную систему Windows 7 можно поспорить. Дело в том, что удобство этого инструмента для сёрфинга в интернете является спорным вопросом. Он не владеет современными функциями остальных программ для веб-сёрфинга, безопасность его использования также находится под сомнениями. Ещё один удручающий факт: некоторые страницы просто не могут нормально отображаться в IE 10 или 11, хотя эти версии являются самыми последними для продуктов. В таких случаях и нужен режим совместимости в Internet Explorer.

Как включить режим совместимости в IE 10 или 11?

Итак, переходим собственно к главной теме сегодняшнего обсуждения. Не будем тянуть резину и сразу приступим к выполнению следующих простых действий :

  1. Шаг первый: открываем браузер.
  2. Шаг второй: переходим на страницу сайта, который отображается некорректно.
  3. Теперь нажимаем кнопку настроек , расположенную прямо под красным крестиком, который закрывает программу.
  4. Выбираем «Параметры просмотра в режиме совместимости».
  5. Кликаем по кнопке «Добавить» и закрываем диалоговое окно. Перезагружаем страницу.
  6. Готово! Теперь этот сайт будет отображаться в правильной форме.

Как отключить этот режим?

На самом деле, отключить его так же просто, как и включить:

Иногда встречаются ситуации, когда в Internet explorer 11 или 10 веб страницы отображается не корректно.

Это происходит потому, что новых браузерах вид страниц может немного изменятся. В итоге сайт может выглядеть необычно.

Чтобы вид исправить, разработчики внедрили в IE 11 и 10 функцию, под названием «режим совместимости».

Если включить режим совместимости в IE 11 или 10, то параметры отображения сайтов изменяются – приобретают функциональность Internet explorer 9 или 8.

Режим совместимости можно включать не только для браузера IE 11 и 10, но и для игр и программ, только немного по-другому.

Настройка браузера Internet Explorer 11 или 10 для включения режима совместимости

Прежде чем перейти к включению режима совместимости в браузерах IE 11 или 10 вам потребуется выполнить один маленький шаг, а точнее включить отображение «меню».

Для этого кликните в любом месте в самом верху браузера правой клавишей мышки и поставьте галочку напротив строки: «строка меню».

Теперь появится новая линейка, в которой вам будут доступно множество настройки «под себя».


Также обратите внимание, что при несовместимости страницы с браузером internet explorer 11, то в адресной строке (с правой стороны) возникает кнопка, нажав на которую браузер автоматически переключится, на отображение сайтов как было в старых версиях.

Включение режима совместимости в IE 11 и 10

Теперь, когда у вас появилась линейка меню, нажмите на опцию «сервис» и в появившейся вкладке выберите: «параметры просмотра в режиме совместимости» или «просмотр…».

После этого адрес веб-страницы, на которой вы находитесь, будет прописан в появившемся окне (если выберите первый пункт), где вам будет предложено добавить сайт для просмотра в режиме совместимости.

Нажмите на кнопку «добавить» и ваш браузер InternetExplorerперестроится и начнет корректно отображать добавленный сайт.

Тем, кто желает выключить режим совместимости в internet explorer 11, в открытом обозревателе нажмите клавишу «Alt» для появления строки меню или вызовите ее как описано выше.


Далее перейдите в «сервис» и нажмите на строку «удалить журнал браузера». Появится окно в котором можно очистить список режима совместимости как полностью, так и для отдельных сайтов (опция журнал).

Следует отметить, что эта функция в интернет эксплорер довольно полезна и обновляется автоматически.

Туда заносятся адреса сайтов, которые разработаны под старые версии IE, хотя при желании обновления можно отключить.

Однако отключать не торопитесь — многие сайты при включенной функции намного лучше отображается. Успехов.