Принудительный режим браузера Internet Explorer 8 в интрасети
В IE8 есть "Internet Explorer 8", "Режим совместимости Internet Explorer 8" и IE7.
Однако по умолчанию в IE все веб-сайты интрасети используют "Режим совместимости с IE8", даже если я установил doctype, метатег, HTTP-заголовок, как это было предложено, чтобы заставить его работать в режиме IE8.
У меня
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " http://www.w3.org/TR/html4/loose.dtd" >
и
< meta http-equiv = "X-UA-Compatible" content = "IE = 8" >
Но он по-прежнему входит в "Режим совместимости IE8", без каких-либо изменений в настройке IE.
Как заставить его в чистом режиме "IE8" без изменения настроек браузера?
PS. Я не говорю "режим документа" здесь.
Ответы
Ответ 1
Похоже, что MSFT не рассматривает большую среду интрасети, в которой у нас есть много разных веб-приложений.
Нет способа обойти настройку IE8, в соответствии с тем, что я читал на форуме MSDN.
Итак, мне придется попросить моих системных администраторов внести некоторые новые групповые политики, чтобы изменить параметр "Совместимость", а значение и предотвратить изменение пользователем значения, пока MSFT не обнаружит эту ошибку и не исправит ее.
Из сообщения в блоге MSDN (выделение их): " Режим браузера выбран до того, как IE запрашивает веб-контент. Это означает, что сайты не могут выбирать режим браузера."
Ответ 2
Можно переопределить режим совместимости в интрасети. Просто добавьте приведенный ниже код в web.config. Работал для меня с IE9.
<system.webServer>
<httpProtocol>
<customHeaders>
<clear />
<add name="X-UA-Compatible" value="IE=edge" />
</customHeaders>
</httpProtocol>
Ответ 3
Вам нужно внести некоторые изменения в IE.
Здесь они.....
В "Свойствах Интернета" / "Местная интрасеть/сайты"
В разделе "Внутренняя интрасеть внутри сайтов" снимите флажок "Автоматически обнаруживать сеть интрасети".
Затем выберите только "Включить все сетевые пути (UNC))
См. прикрепленные скриншоты
Ответ 4
Я нашел ответы здесь трудными для подражания, поэтому здесь важная информация в двух словах:
Если ваша интрасеть использует настройки по умолчанию для IE, режим стандартов IE7 применяется для сайтов интрасети, независимо от настроек веб-сайта.
Из this:
Вид совместимости и Enterprise
Большое количество направлений бизнеса веб-сайтами являются Internet Explorer 7 способный сегодня. Чтобы сохранить совместимость, Internet Explorer 8 с интеллектуальными стандартами по умолчанию зоны. В состоянии по умолчанию, все сайты в общедоступном Интернете отображение в Internet Explorer 8 Режим стандартов (просмотр совместимости off) и всех веб-сайтов интрасети отображение в Internet Explorer 7 Режим стандартов (просмотр совместимости далее).
Давайте рассмотрим некоторые примеры. если ты переходить на сайты на вашем местном intranet, например http://myPortal и http://sharepoint/sites/mySite, Internet Explorer 8 идентифицирует себя со строкой User Agent '7, вектор версии' 7 и отображает веб-страницы, которые запускают режим стандартов в Internet Explorer 7 Режим стандартов. Эта комбинация позволяет веб-страницам работать правильно в Internet Explorer 7, чтобы продолжить сделайте это в IE8.
Ответ 5
Чтобы переопределить параметры представления совместимости для интрасети или всех веб-сайтов, вам необходимо сделать эмуляцию IE8.
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" >
Ответ 6
Задайте собственный HTTP-заголовок вместо <meta...
в разделе <head>
. Предполагается, что они эквивалентны, но я видел, что заголовок X-UA-Compatible
HTTP с сервера будет переопределять IE 8 "Показывать объекты интрасети в режиме совместимости", где элемент <meta...
не будет.
Ответ 7
Прочитайте где-нибудь, что объявление DOCTYPE должно быть самой первой строкой. Никаких комментариев ни одного вида, ни пустых строк.
В сочетании с настройкой заголовков HTTP-ответов это сработало для меня. Browser Mode
перешел из "Режим совместимости IE9" только в "Режим IE9".
Ответ 8
Если вы используете .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>
Ответ 9
HKEY_CURRENT_USER\Программное обеспечение \Microsoft\Internet Explorer\BrowserEmulation
IntranetCompatibilityMode 1 → 0
Ответ 10
Для того, чтобы объявление META работало, doctype должен быть упрощенной версией:
<!DOCTYPE html>
Не более длинное выражение в вопросе Денниса.
Ответ 11
Этот комбо помогло:
<!DOCTYPE HTML>
<HEAD>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" >
</HEAD>
по крайней мере IE-разработчики сообщают о просмотре приложений IE9, стандартах IE8
Просто для ударов я попробовал EmulateIE7, и это сработало.
упрощение расширенного! DOCTYPE был ключевым.
Ответ 12
Вам нужно удалить номер порта с вашего имени домена
сайт: 1180/индекс/
Если браузер видит номер порта в url - hi "think", это интрасеть.
настройте свой DNS-сервер для дружественных URL-адресов - site.com/index, и он работает нормально
Ответ 13
Ответ, помеченный как "правильный", технически корректен, но предполагает, что большинство проблем, с которыми сталкивается большинство людей, не является решением реальной проблемы: "как правильно показать на IE8 с включенным режимом совместимости, веб-приложение, которое не поддерживает режим совместимости?".
<!DOCTYPE HTML>
<HEAD>
<meta http-equiv="X-UA-Compatible" content="Edge" >
</HEAD>
это работало для меня на нескольких рабочих станциях.
Если вышеуказанный код реализован на стороне приложения, IE8, похоже, ведет себя так, как будто он не находится в режиме совместимости, хотя он все равно будет показывать режим браузера как режим совместимости.