Принудительный режим браузера "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.
Они есть.....В Internet Options / Локальная Интрасеть / Сайты
В разделе: локальная интрасеть внутри сайтов снимите флажок "Автоматически обнаруживать сеть интрасети".
затем выберите только " включить все сетевые пути (UNCs)
см. прилагаемые скриншоты
Я нашел ответы здесь трудно следовать, поэтому вот важная информация в двух словах:
Если интрасеть использует параметры по умолчанию для 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, и это сработало. упрощение расширенного !DOCTYPE был ключевым.
вам нужно удалить номер порта из вашего доменного имени сайта сайт:1180 / index/
Если браузер видит номер порта в url-привет "думаю", это интрасеть.
настройка DNS-сервера для дружественных url - site.com/index и он работает ОК
ответ, помеченный как "правильный", технически корректен, но предполагает, что нет решения реальной проблемы, с которой сталкивается большинство людей: "как правильно показать на IE8 с включенным режимом совместимости веб-приложение, которое не поддерживает режим совместимости?".
<!DOCTYPE HTML>
<HEAD>
<meta http-equiv="X-UA-Compatible" content="Edge" >
</HEAD>
этот работал для меня на нескольких рабочих станциях.
если приведенный выше код реализован на стороне приложения, IE8 ведет себя так, как будто он не находится в режиме совместимости, даже хотя он по-прежнему будет показывать режим браузера как режим совместимости.