html флажок - Принудительный режим браузера Internet Explorer 8 в интрасети




список режиме (12)

В 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. Я не говорю «режим документа» здесь.


Answers

Для того, чтобы объявление META работало, doctype должен быть упрощенной версией:

<!DOCTYPE html>

Не более длинное заявление в вопросе Денниса.


Этот комбо сделал трюк для меня:

<!DOCTYPE HTML>
<HEAD>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" >
</HEAD>

по крайней мере, инструменты разработчика IE сообщают о просмотре сокетов IE9, стандартах IE8

просто для ударов я попробовал EmulateIE7, и это сработало. упрощение расширенного! DOCTYPE был ключевым.


Читайте где-нибудь, что декларация DOCTYPE должна быть самой первой строкой . Никаких комментариев, никаких пустых строк.

В сочетании с настройкой заголовков HTTP-ответов это сработало для меня. Browser Mode перешел из «Режим совместимости IE9» только в «Режим IE9».


Если вы используете .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>

HKEY_CURRENT_USER \ Программное обеспечение \ Microsoft \ Internet Explorer \ BrowserEmulation IntranetCompatibilityMode 1 -> 0


Вам нужно будет внести некоторые изменения в IE.

Вот они.....

В окне «Параметры Интернета» / «Местная интрасеть / сайты»

В разделе «Внутренняя интрасеть внутри сайтов» снимите флажок «Автоматически определять сеть интрасети».

Затем выберите только «Включить все сетевые пути (UNC)

См. Прилагаемые скриншоты


Установите пользовательский HTTP-заголовок вместо использования <meta... в разделе <head> . Предполагается, что они эквивалентны, но я видел, что HTTP-заголовок, X-UA-Compatible с X-UA-Compatible с сервера будет переопределять IE 8 «Показывать сайты интрасети в режиме совместимости», где элемент <meta... не будет.


Я нашел ответы здесь трудными для подражания, так что вот важная информация в двух словах:

Если ваша интрасеть использует настройки по умолчанию для IE, режим IE7 Standard Mode применяется для сайтов интрасети, независимо от настроек веб-сайта.

Из this :

Просмотр совместимости и Enterprise

Сегодня большое количество веб-сайтов для работы в Интернете - это Internet Explorer 7. Чтобы сохранить совместимость, Internet Explorer 8 поставляется с интеллектуальными стандартами по умолчанию на основе оценки зоны. В состоянии по умолчанию все сайты общего интернет-дисплея в режиме Internet Explorer 8 Standard (режим совместимости) и все веб-сайты интрасети отображаются в режиме Internet Explorer 7 Standard ( режим совместимости).

Давайте посмотрим на некоторые примеры. Если вы переходите на сайты в локальной интрасети, такие как http: // myPortal и http://sharepoint/sites/mySite , Internet Explorer 8 идентифицирует себя со строкой User Agent из 7, Vector Vector '7' и отображает веб-страницы, которые запускают режим стандартов в режиме Internet Explorer 7 Standard. Эта комбинация позволяет веб-страницам, которые правильно работали в Internet Explorer 7, продолжать делать это в IE8.


Ответ, обозначенный как «правильный», является технически правильным, но предполагает, что нет реальной проблемы, с которой сталкивается большинство людей, которые: «как правильно показать на IE8, включен режим совместимости, веб-приложение, которое не поддерживает режим совместимости?".

<!DOCTYPE HTML>
<HEAD>
    <meta http-equiv="X-UA-Compatible" content="Edge" >
</HEAD>

это работало для меня на нескольких рабочих станциях.

Если вышеуказанный код реализован на стороне приложения, IE8, похоже, ведет себя так, как если бы он не был в режиме совместимости, хотя он все равно будет показывать режим браузера в режиме совместимости.


Чтобы переопределить параметры просмотра совместимости для интрасети или всех веб-сайтов, вам необходимо подражать IE8.

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" >

Можно переопределить режим совместимости в интрасети. Просто добавьте приведенный ниже код в web.config. Работал для меня с IE9.

<system.webServer>
<httpProtocol>
  <customHeaders>
    <clear />
    <add name="X-UA-Compatible" value="IE=edge" />
  </customHeaders>
</httpProtocol>


Я нашел рабочий ответ, который позволяет переопределить проверенный вид совместимости интрасети. Просто добавьте в событие OnInit вашей страницы эту строку (нет необходимости в мета или коннекторе web.config):

Response.AddHeader("X-UA-Compatible", "IE=EmulateIE8");






html internet-explorer-8 ie8-compatibility-mode x-ua-compatible ie8-browser-mode