Я работал над веб-сайтом интрасети более 6 месяцев, где я использовал приведенный ниже doctype
метатег совместимости html5 и edge, чтобы заставить Internet Explorer не эмулировать старую версию браузера, и это сработало.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>My title</title>
<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
</head>
<body>
</body>
</html>
Причина, по которой я делал это таким образом, заключается в том, что в том месте, где я работаю, используется параметр политики, позволяющий включить представление совместимости для всех сайтов интрасети, и этот подход с использованием EDGE
параметра работал в Internet Explorer 9.
Более месяца назад я был обновлен до Internet Explorer 11, и сайт все еще работал, как ожидалось.
Сегодня это перестало работать, как ожидалось, я не могу сказать наверняка, но я думаю, что политика, которая заставляет представление совместимости, не была включена в IE11, и теперь это так ... и поскольку это было включено, метатег совместимости больше не делает то, что ожидается, и этот сайт работает в режиме Enterprise, который имитирует IE8.
Кто-нибудь знает, как исправить это и принудительно использовать IE11 на сайте интрасети, когда принудительно применяется совместимость «Режим предприятия»? и нельзя отключить в настройках браузера?
РЕДАКТИРОВАТЬ
Я только что попытался добавить настраиваемый заголовок в свой web.config, как описано в этом ответе https://stackoverflow.com/a/18257208/98706
и это не сработало для меня, я все еще получаю сообщение ниже в консоли панели инструментов разработчика
HTML1122: Internet Explorer is running in Enterprise Mode emulating IE8.
Это как если бы версия 8 рассматривалась как версия, edge
когда этот параметр совместимости с интрасетью включен в IE11.
Это сообщение: https://www.leapinggorilla.com/Blog/Read/1016/ie-ate-my-css---disables-compatability-mode объясняет это хорошо, я еще не пробовал установить этот заголовок с помощью кода и у наших пользователей нет доступа к изменению настроек своего браузера ... ни одно из других изменений пока не помогло.
ОБНОВИТЬ
Пожалуйста, посмотрите мой комментарий к этому сообщению о том, в чем разница между режимом Enterprise и режимом совместимости, потому что это важно.
Ответы:
Удостовериться:
<meta http-equiv="X-UA-Compatible" content="IE=edge">
- это первый
<meta>
тег на вашей странице, иначе IE может его не уважать.Кроме того, проблема может заключаться в том, что IE использует режим предприятия для этого веб-сайта:
HTML1122: Internet Explorer is running in Enterprise Mode emulating IE8.
источник
Эта проблема обычно возникает из-за того, что URL-адрес веб-сайта / интрасети помещен в один из:
(с включенным параметром Отображать сайты интрасети в режиме совместимости)
В корпоративных сетях эти параметры просмотра совместимости часто управляются централизованно с помощью групповой политики . В вашем случае, похоже , виноват режим предприятия .
К сожалению, установка META
X-UA-Compatible
не отменяет этого.Конечным пользователям
Иногда для конечных пользователей единственный способ изменить это - нажать F12 и изменить режим документа на вкладке « Эмуляция» . Однако этот параметр не является постоянным и может быть восстановлен после закрытия инструментов разработчика.
Вы также можете попробовать исключить свой сайт из зоны интрасети. Но список доменов, которые принадлежат зоне интрасети, обычно также контролируется групповой политикой, поэтому шансы на то, что это сработает, невелики.
Чтобы просмотреть список доменов, входящих в зону интрасети, перейдите по ссылке:
Инструменты -> Свойства обозревателя -> Безопасность -> Сайты -> Дополнительно
Если список содержит ваш поддомен и выделен серым цветом, вы не сможете переопределить представление совместимости, пока администратор сети не разрешит это.
Вам действительно нужно связаться с вашим сетевым администратором, чтобы разрешить изменение параметров просмотра совместимости в групповой политике.
Для сетевых администраторов
Загрузка веб-сайта с открытыми инструментами разработчика (F12) часто сообщает о причине перехода IE в более старый режим.
Все 3 упомянутых выше параметра обычно контролируются с помощью групповой политики, хотя иногда их можно переопределить на пользовательских машинах.
Если проблема в режиме предприятия (как в случае с исходным плакатом), вам могут быть полезны следующие две статьи:
источник
Тем, кто создает проект ASP.NET MVC, убедитесь, что вы добавили:
на страницу макета (шаблона). Я просто потратил два часа на отладку и настройку, только чтобы понять, что я только добавил этот метатег на свои дочерние страницы. Как только я добавил его на свою страницу макета, браузер отлично загрузился в режиме EDGE.
источник
Отмеченный ответ - правильный. Однако, Прайси, вы должны следить за этим с помощью групп администратора AD и рабочего стола. Они неправильно используют список сайтов IE11 Enterprise Mode. Microsoft НЕ планирует использовать его для всех сайтов интрасети в организации. Это будет распространять существующий параметр «отображать все сайты интрасети в режиме совместимости», который является проклятием для продвижения корпоративных веб-сайтов во всем мире.
Он предназначен для реализации в виде «черного списка», при этом несколько сайтов, которым действительно требуется устаревший режим браузера, перечислены в списке режима предприятия с указанием их требований к отображению. После этого все остальные сайты в вашей организации будут освобождены для использования Edge. Люди в вашей организации, которые внедрили его со всеми сайтами интрасети, включенными с самого начала, совершенно неправильно поняли, как предполагается реализовать режим предприятия.
источник
Вопрос немного устарел, но я решил очень похожую проблему. У нас есть несколько сайтов интрасети, в том числе тот, за который я отвечаю, а остальные требуют режима совместимости, иначе они сломаются. По этой причине правила сайта по умолчанию IE работают в режиме совместимости на сайтах интрасети. Я обновляю свои собственные данные и больше не нуждаюсь в них; на самом деле, некоторые из функций, которые я пытаюсь использовать, не выглядят правильно в режиме совместимости. Я использую метатег IE-Edge, как и вы.
IE предполагает, что веб-сайты без полного адреса являются интрасетью, и действует соответственно. Имея это в виду, я просто изменил привязки в IIS, чтобы прослушивать только полностью квалифицированный адрес, а затем настроил фиктивный веб-сайт, который прослушивал неквалифицированный адрес. Второй перенаправляет весь трафик на полный адрес, заставляя IE считать, что это внешний сайт. Сайт отображается правильно с установленным флажком "Режим совместимости на сайтах интрасети" или без него.
источник
Это старая проблема с хорошей информацией. Но я только что обнаружил, что использование FQDN отключает режим совместимости в IE 9-11. Пример. У меня проблема с
совместимостью с http: // lrmstst01: 8080 / JavaWeb / login.do,
но проблемы исчезают с
http://lrmstst01.mydomain.int:8080/JavaWeb/login.do
NB: .int является частью наш внутренний домен
источник
Переместите его в зону «Надежные сайты», добавив его в список «Надежные сайты» или локально. Это переместит его из зоны интрасети и не будет отображаться в Compat. Посмотреть.
источник
Добавьте указанное ниже свойство в файл web.config для сайтов IIS. Это сработало для меня в моей интрасети в IE11.
источник
Я решил эту проблему, перенаправив пользователя на полное доменное имя сервера, на котором размещена интрасеть.
IE, вероятно, использует худший в мире алгоритм для обнаружения сайтов "интрасети" ... действительно, указание server.domain.tld решает для меня проблему.
Да, вы прочитали это правильно, IE обнаруживает сайты интрасети не по частному IP-адресу, как это сделал бы любой разработчик, который слышал о TCP / IP, нет, по части URL-адреса "host", если у нее нет части домена, должен быть внутренним.
Страшно знать, что разработчики IE не понимают самых основных концепций TCP / IP.
Обратите внимание, что это было у БОЛЬШОГО корпоративного клиента, заставить его изменить GPO для вас - все равно что пытаться переместить Альпы на восток на 4 метра, но этого не произойдет.
источник
Как бы то ни было, у меня тоже была проблема в IE11:
<!DOCTYPE html>
иIE=Edge
, упомянутые в вопросе<head>
элементеЧерез некоторое время я узнал, что:
Заголовок HTTP :
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E)
ноJavaScript :
window.navigator.userAgent === 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; rv:11.0) like Gecko'
Итак, я закончил проверку на стороне клиента.
А между тем, между тем, проверка пользовательского агента больше не рекомендуется. См. Https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent (но это может быть хороший случай)
источник