Як можна програмно вимкнути режим сумісності IE?


75

Я затримався на цьому на деякий час - я не міг зрозуміти, чому веб-сайт відображається по-різному в двох однакових версіях Internet Explorer. Півгодини тому я наткнувся на кнопку режиму сумісності в IE, що мене дуже розсердило.

Вимкнення режиму сумісності вирішило мою проблему.

Чи є спосіб вимкнути його програмно, тобто з веб-сторінки?

Редагувати:

Щойно натрапив на цей блог https://blogs.msdn.com/b/askie/archive/2009/03/23/understanding-compatibility-modes-in-internet-explorer-8.aspx

Я опублікую приклад коду після прочитання статті


Не впевнений, чи можете ви це зробити через веб-сторінку, можливо, краще кодувати режим сумісності IE (IE 7). :(
Spooks

Див. Stackoverflow.com/questions/1014666/… . Це не має нічого спільного з типом доктрини.
Девід Колар,

Я сподіваюся, є параметр Windows / IE, але ви нічого не можете зробити з веб-сторінки, щоб це продиктувати, оскільки ви хочете залишатися в IE8, а не переходити в режим сумісності.
James Black

Відповіді:


92

Якщо ви хочете, щоб "стара" візуалізація і жодна кнопка не відображалася на панелі інструментів, щоб користувачі могли перемикати режими, ви можете використовувати це:

<head>
  <!-- Mimic Internet Explorer 7 -->
  <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" >
  <title>My Web Page</title>
</head>

інші варіанти (старі і нові) включають в себе: IE=5, IE=7, IE=8, абоIE=edge

(край дорівнює найвищому доступному режиму)


Дякую - це працює. Це все ще означає, що я повинен змінити свій код для роботи в IE 7 ..

Чи є у вас щось, що не працює в режимі IE8 Standards? Якщо так, то опублікуйте ще одне питання, і, можливо, ми можемо вирішити його для вас.
scunliffe

Це позиціонування div. Я десь читав, що IE7 потребує додаткових кількох пікселів для лівого та правого полів або щось подібне на цих рядках. Сайт чудово виглядає у firefox, сафарі, хромі, навіть тобто 8 без режиму сумісності ... але IE 7 зовсім інша історія

1
Омг дякую. Це збило мене з розуму. Я веб-розробник і розробляю речі на платформі IE9, але коли я подаю роботу, і її проштовхують через інші речі, вона закінчується всім спотвореним на реальній стороні. Цей маленький фокус дозволив мені примусити налаштування IE9, саме так, як я їх бачу, позбувшись незліченних, здавалося б, проблем CSS, які заважали навіть операціям jQuery.
Лукас

2
Якщо з якихось причин ви не можете помістити це в заголовок перед скриптом або css, ви можете додати його як заголовок у конфігурації веб-сервера.
Lucas Holt


4

Також зверніть увагу, що також налаштування браузера IE8 можуть застосовувати певний режим. У мене є клієнт, який має режим сумісності IE8, який застосовується політикою в режимі інтрамережі.


+1, це також можна застосувати в IE9. Можливо, у всіх нових версіях IE, я думаю.
am_

0

Будь ласка, додайте, щоб IE не застосовував режим сумісності

<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8">

0

У моєму випадку я виправив це, додавши наступний тег після <head>тегу:

<meta content="IE=edge" http-equiv="X-UA-Compatible">
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.