Як вимкнути режим сумісності в IE


76

Мені цікаво, як зупинити людей, які використовують IE 8, переходити в режим сумісності?

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

Я знайшов цей тег, і думаю, що це змушує людей залишатися в режимі IE-8, але я не надто впевнений і не можу перевірити, оскільки маю IE 9.

Якщо люди перебувають у режимі IE 9, я змушую їх не переходити в режим сумісності IE 8 або IE 7?

Я спробував помістити наведений вище рядок у свій код і перейшов до IE 9 -> Інструменти -> Перегляд сумісності (сірий)

але "Налаштування перегляду сумісності" не було виділено сірим кольором, і, здається, ви могли б додати сайт через нього.

То чи не слід це відключити?


15
@ Sparky672 - так, я хочу. Я не підтримую IE 7, і веб-переглядач відображає застаріле попередження. Що я виявив під час досліджень зручності використання, більшість людей не повідомляють, що вони можуть перебувати в режимі сумісності (і насправді не знають про те, як вони його встановлюють), і коли ви повідомляєте їм, що їх браузер застарів, і вони думають, що вони використовують IE 8 ( останній браузер на момент дослідження) вони дуже швидко плутаються. Найкраще рішення - змусити їх повернутися до IE 8/9 (до того, що вони, мабуть, думають, що все
одно

Відповіді:


50
<meta http-equiv="X-UA-Compatible" content="IE=8" /> 

повинен змусити вашу сторінку відображатися у стандартах IE8. Користувач може додати сайт до списку сумісності, але цей тег матиме пріоритет.

Швидким способом перевірки буде завантаження сторінки та введення наступного адресного рядка:

javascript:alert(navigator.userAgent) 

Якщо ви бачите IE7 у рядку, він завантажується в режимі сумісності, інакше ні.


2
Що станеться, якщо їх використання IE 9 встановить для них IE 8?
chobo2

1
Якщо користувач використовує його в IE9, він відображатиме його у стандартному режимі IE8. Ви також можете скористатися панеллю інструментів розробника F12 в IE9, щоб перевірити її.
Sriranga Chidambara

92
Краще використання <meta http-equiv = "X-UA-Compatible" content = "IE = edge" /> Крім того, якщо веб-сайт розміщений на тому, що корпорація Майкрософт вважає "інтрамережею", ви все одно відображатиметеся у сумісності Переглянути. Єдиний спосіб перевизначення - зняти прапорець біля пункту "Показувати сайти інтрамережі в режимі сумісності" в Інструменти - Налаштування режиму сумісності. Це налаштування за замовчуванням у IE8 + справді смердить.
oldwizard

5
Я друге це. Щойно покусав параметр за замовчуванням "Показувати веб-сайти інтрамережі в режимі сумісності" (у моєму випадку в IE9).
Дерек Моррісон,

4
У мене встановлено прапорець «Показувати сайти внутрішньої мережі в поданні сумісності», але, схоже, мета-тег, сумісний з X-UA, перекриває його.
Justin Skiles

91

Все, що вам потрібно, це примусово вимкнути CM в IE - Просто вставте цей код (в IE9 і нижче cm буде вимкнено):

<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" />

Джерело: http://twigstechtips.blogspot.com/2010/03/css-ie8-meta-tag-to-disable.html


3
Це врятувало мене завдяки сумісності Twitter Bootstrap та IE. FYI - Це повинен бути ПЕРШИЙ метатег.
nope_four

11
Хіба це не те саме, що <meta http-equiv = "X-UA-Compatible" content = "IE = edge" />?
eug

4
будьте обережні, щоб не використовувати будь-які умовні коментарі перед цим тегом. В іншому випадку це не працює! Знайшов там підказку: stackoverflow.com/questions/3449286/…
Карл Адлер

73

Цього має бути достатньо, щоб змусити IEкористувача відмовитися від режиму сумісності в будь-якій IEверсії:

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

Однак є кілька застережень, про які слід пам’ятати:

  • Метатег вище повинен бути включений як найперший тег під<head> . <title>Над ним може бути розміщений лише тег.

Якщо ви цього не зробите, ви отримаєте повідомлення про помилку в IE9Dev Tools:X-UA-Compatible META tag ignored because document mode is already finalized.

  • Якщо ви хочете, щоб цю розмітку перевірили, не забудьте закрити metaтег />замість просто >.

  • Починаючи з IE11, крайовий режим є найкращим режимом документа. Щоб підтримати / увімкнути це, використовуйте декларацію типу документа HTML5 <!doctype html>.

  • Якщо вам потрібно підтримати веб-шрифти IE7, переконайтеся, що ви їх використовуєте <!DOCTYPE html>. Я перевірив це і виявив, що візуалізація веб-шрифтів на сайті IE7стала досить ненадійною при використанні <!doctype html>.

Використання Google Chrome Frame є популярним, але, на жаль, це буде припинено десь цього місяця, січня 2014 року.

<meta http-equiv="X-UA-Compatible" content="IE=EDGE,chrome=1">

Велика родинна інформація тут . Кінчик про використання його в якості першого мета - тег на раніше згаданий джерело тут , який був оновлений.


9

Якщо ви використовуєте ASP.NET MVC, я знайшов Response.AddHeader("X-UA-Compatible", "IE=edge,chrome=1")у блоці коду в _Layout, що працює досить добре:

@Code
    Response.AddHeader("X-UA-Compatible", "IE=edge,chrome=1")
End Code
<!DOCTYPE html>
everything else

5

Відповідь, яку дав FelixFett, спрацював для мене. Щоб повторити:

<meta http-equiv="X-UA-Compatible" content="IE=11; IE=10; IE=9; IE=8; IE=7; IE=EDGE" />

У мене це як перший мета-тег у моєму коді. Я додав 10 і 11, оскільки це версії, які опубліковані зараз для Internet Explorer.

Я б просто прокоментував його відповідь, але у мене недостатньо висока репутація ...


3

Іншим способом досягнення цього в Apache є розміщення наступних рядків у .htaccessкореневій папці вашого веб-сайту (або в конфігураційних файлах Apache).

BrowserMatch "MSIE" isIE
BrowserMatch "Trident" isIE
Header set X-UA-Compatible "IE=edge" env=isIE

Це вимагає , щоб у вас є mod_headersі mod_setenvifвключені модулі.

Зайвий заголовок HTTP надсилається лише браузерам IE, і жоден з інших.


1

У JSF я використовував:

<h:head>
    <f:facet name="first">
        <meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
    </f:facet>

    <!-- ... other meta tags ... -->

</h:head>

0

Додавання тегу на вашу сторінку не вплине на користувальницький інтерфейс на панелі керування Інтернетом (діалогове вікно, яке з’явиться при виборі Інструменти -> Параметри). Якщо ви переглядаєте свою домашню сторінку, яка може бути google.com, msn.com, about: blank або example.com, панель керування Інтернетом не знає, яким може бути вміст вашої сторінки, і вона не завантажиться це у фоновому режимі.

Погляньте на цей документ на MSDN, в якому обговорювався режим сумісності та способи його вимкнення для вашого сайту.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.