Принудительный режим браузера "Internet Explorer 8" в интрасети
в IE8 есть "Internet Explorer 8", "режим совместимости Internet Explorer 8" и режим IE7.
однако настройка по умолчанию в IE делает все веб-сайт интрасети использовать "режим совместимости IE8" даже я установил doctype, мета-тег, HTTP-заголовок, как предлагается, чтобы заставить его в режим IE8.
У меня есть
http://www.w3.org/TR/html4/loose.dtd">
и
но он по-прежнему переходит в "режим совместимости IE8", без каких-либо изменений в настройках IE.
Как заставить его работать в чистом режиме "IE8", без изменения настроек браузера?
PS. Я не говорю здесь "режим документа".
13 ответов:
кажется, что MSFT не рассматривает большую среду интрасети, в которой у нас есть много разных веб-приложений, работающих внутри.
нет способа обойти настройку IE8, согласно где-то я читал на форуме MSDN.
Итак, мне придется просить моих системных администраторов поставить некоторые новые групповые политики, чтобы изменить настройку "просмотр совместимости" и значение и предотвратить изменение пользователем значения, пока MSFT не обнаружит эту ошибку и не исправит ее.
с MSDN сообщение в блоге (выделено в оригинале): "режим браузера выбирается до того, как IE запрашивает веб-контент. Это значит, что сайты не могут выбрать режим браузера."
можно переопределить режим совместимости в интрасети. Просто добавьте ниже код в интернете.конфиг. Работал для меня с IE9.
<system.webServer> <httpProtocol> <customHeaders> <clear /> <add name="X-UA-Compatible" value="IE=edge" /> </customHeaders> </httpProtocol>
Я нашел ответы здесь трудно следовать, поэтому вот важная информация в двух словах:
Если ваша интрасеть использует параметры по умолчанию для IE, режим стандартов IE7 применяется для сайтов интрасети независимо от каких-либо параметров веб-сайта.
с этой:
просмотр совместимости и предприятия
большое количество бизнес- веб-сайты-это Internet Explorer 7 способны сегодня. Для того, чтобы сохранить совместимость, Internet Explorer 8 поставляется с интеллектуальными настройками по умолчанию на основе оценка зоны. В состоянии по умолчанию , все сайты в интернете отображение в Internet Explorer 8 в Стандартный режим (режим совместимости выкл.) и все сайты интрасети отображение в Internet Explorer 7 и Режим стандартов (Просмотр В Режиме Совместимости на.)
давайте рассмотрим несколько примеров. Если вы перейдите к сайтам на вашем локальном компьютере интранет вроде http://myPortal и http://sharepoint/sites/mySite, Internet Explorer 8 идентифицирует себя со строкой агента пользователя ‘7’, вектор версии ‘7’, и отображает веб-страницы, которые вызывают стандартный режим в Internet Explorer 7 и Стандартный режим. Это сочетание позволяет веб-страниц, которые работали правильно в Internet Explorer 7, чтобы продолжить сделайте это в IE8.
чтобы переопределить параметры представления совместимости для интрасети или всех веб-сайтов, вам нужно заставить IE8 эмулировать себя.
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" >
установите пользовательский заголовок HTTP вместо использования
<meta...
на . Они должны быть эквивалентны, но я видел, чтоX-UA-Compatible
HTTP-заголовок с сервера переопределит параметр IE 8 "отображать сайты интрасети в режиме совместимости", где<meta...
элемент не будет.
Если вы используете .NET, у меня есть ответ для вас:
HTML:
<!DOCTYPE html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=8" >
Web.Config:
<system.webServer> <httpProtocol> <customHeaders> <clear /> <add name="X-UA-Compatible" value="IE=8" /> </customHeaders> </httpProtocol>
где-то читал, что объявление DOCTYPE должно быть первая строка. Никаких комментариев, никаких пустых строк.
в сочетании с установкой заголовков ответов HTTP это сработало для меня.
Browser Mode
перешел из" режима совместимости IE9 "в просто"режим IE9".
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\BrowserEmulation IntranetCompatibilityMode 1-->0
для того, чтобы мета-объявление работало, doctype должен быть упрощенной версией:
<!DOCTYPE html>
не более длинное утверждение в вопросе Денниса.
эта комбинация сделала трюк для меня:
<!DOCTYPE HTML> <HEAD> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" > </HEAD>
по крайней мере IE developer tools сообщает IE9 Compat View, стандарты IE8
просто для пинки я попробовал EmulateIE7 и это тоже сработало. упрощение расширенного !Был установлен ключ.
вам нужно удалить номер порта из имени вашего доменного сайта сайт:1180 / index/
Если браузер видит номер порта в url-привет "думаю", это интрасеть.
настройка dns-сервера для дружественных URL-адресов -site.com/index и это работает нормально
ответ, отмеченный как" правильный", технически корректен, но предполагает, что нет решения реальной проблемы, с которой сталкивается большинство людей, а именно: "как я правильно показываю на IE8 с включенным режимом совместимости веб-приложение, которое не поддерживает режим совместимости?".
<!DOCTYPE HTML> <HEAD> <meta http-equiv="X-UA-Compatible" content="Edge" > </HEAD>
этот работал для меня на нескольких рабочих станциях.
если приведенный выше код реализован на стороне приложения, IE8, похоже, ведет себя так, как если бы он не был в режиме совместимости, даже хотя он по-прежнему будет показывать режим браузера как режим совместимости.