В среде, управляемой доменом, я обнаружил, что режим совместимости запускается на определенных клиентах (winXP / Win7, IE8 / IE9), даже когда мы предоставляем теги X-UA, определение! DOCTYPE и ответ «IE = Edge» заголовки. У этих клиентов установлен флажок «отображать сайты интрасети в режиме совместимости». Именно это я пытаюсь преодолеть.
Ниже приводится документация, которую я использовал, чтобы попытаться понять, как IE решает активировать режим совместимости.
http://msdn.microsoft.com/en-us/library/ff406036%28v=VS.85%29.aspx
http://blogs.msdn.com/b/ie/archive/2009/02/16/just-the-facts-recap-of-compatibility-view.aspx
Владельцы сайтов всегда контролируют свой контент. Владельцы сайтов могут выбрать использование тега X-UA-Compatible, чтобы быть абсолютно декларативным в отношении того, как они хотят отображать свой сайт, и для сопоставления страниц режима стандартов со стандартами IE7. Использование тега X-UA-Compatible отменяет просмотр в режиме совместимости на клиенте.
Google для "определения совместимости документов" , к сожалению, механизм спама не позволяет мне размещать более двух URL.
Это ASP .NET
веб-приложение, которое включает следующие определения на главной странице:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
</head>
и web.config
<system.webServer>
<httpProtocol>
<customHeaders>
<clear />
<add name="X-UA-Compatible" value="IE=Edge" />
</customHeaders>
</httpProtocol>
</system.webServer>
Я использовал Fiddler, чтобы проверить, действительно ли заголовок вводится правильно.
Насколько я понимаю, с этими настройками я смогу переопределить настройку браузера «Отображать сайты интрасети в режиме совместимости». Но в зависимости от клиента я обнаружил, что некоторые из них по-прежнему запускают режим совместимости. Это также похоже на уровень машины, а не на настройку группы политик, поскольку я получаю разные результаты, даже когда использую с одним и тем же набором учетных данных на разных клиентах.
Отключение флажка "Параметры просмотра в режиме совместимости" помогает. Но фактическая цель - убедиться, что приложение отображается точно так же, независимо от настроек клиента.
Есть какие-нибудь мысли и что мне может не хватать? Можно ли вообще заставить IE всегда отображать страницы без запуска режима совместимости?
бесконечно благодарен,
Jaume
PS: сайт в настоящее время находится в разработке и, конечно, не входит в список совместимости Microsoft, но я на всякий случай тоже проверил.
Google для "Общие сведения о списке просмотра в режиме совместимости" , к сожалению, механизм спама не позволяет мне размещать более двух URL-адресов.
Изменение моего заголовка на следующее, решает проблему:
<html> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
источник
Обновление: более полезная информация. Что делает <meta http-Equiv = "X-UA-Compatible" content = "IE = edge">?
Возможно, этот URL-адрес может вам помочь: Активация режимов браузера с помощью Doctype
Изменить: сегодня мы смогли переопределить представление совместимости с помощью:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
источник
<meta http-equiv="X-UA-Compatible" content="IE=8" />
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
IE=Edge
поскольку речь идет об отключении режима совместимости.Для разработчиков Node / Express вы можете использовать промежуточное программное обеспечение и установить его через сервер.
app.use(function(req, res, next) { res.setHeader('X-UA-Compatible', 'IE=edge'); next(); });
источник