Почему IE8 говорит, что страница по умолчанию является режимом причуд? - PullRequest
2 голосов
/ 22 февраля 2012

Вот тип документа, который я использую:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Ответы [ 4 ]

8 голосов
/ 22 февраля 2012

Это произойдет, если у вас есть контент (возможно, HTML-комментарий) до DOCTYPE. Пробел в IE8 должен быть в порядке - хотя я думаю, что даже это вызвало проблемы с IE6.

(В IE6 объявление XML перед DOCTYPE вызовет режим причуд - это было исправлено в IE7, но может показаться, что другой контент до DOCTYPE все еще вызывает это.)

2 голосов
/ 22 февраля 2012

не смешно, и я уверен, что вы уже проверили это, но ...

Вы пытались нажать F12, чтобы войти в консоль разработчика IE.Возможно ли, что «Режим документа» или «Режим браузера» установлен в «Режим причуд»

Простите, если это не так ... Я просто упал этой глупостью раньше...

1 голос
/ 21 мая 2014

Эта страница занимает высокое место в рейтинге Google по причине того, что «страница вызывает триггерный режим ie8», поэтому я опубликую свои 2 вывода (из-за проблем с устранением неполадок):

1) Страница будет активировать триггерный режим, если вы используетеphp в целом, но скажите, что на этой конкретной странице у вас вообще нет php-кода в разделе до <html>, но для совместимости вы хотите написать пустые теги <?php ?> при открытии.Теперь, скажем, вы хотите «минимизировать» этот код и удалить все пустые промежутки между ними, поэтому вы пишете:

<?php?>

Это запустит режим Quirks IE8, потому что до <!DOCTYPE html> теперь у вас будетдополнительная строка с чем-то вроде этого в IE8:

<!-- -->

и в Chrome 34.x:

<!--?php?-->

распространенная, но смертельная ошибка.Просто поместите

<?php ?>

(с пробелом) в безопасное место.

2) Вторую причину действительно было очень трудно обнаружить.Если вы используете UTF-8 для своих документов и редактируете их с помощью Notepad ++, вы, скорее всего, установите кодировку символов как чисто UTF-8 (Notepad ++> Encoding> Encode in UTF-8), и случайно вы сможете запустить режим IE8 Quirks!

Теперь решение очень простое: с помощью Notepad ++ просто выберите Кодировка> Преобразовать с использованием UTF-8 без спецификации.

Режим Quirks снова исчез!

Мне понадобилось времячтобы поймать все это, изо всех сил пытаясь найти ошибки в CSS, которые вообще не были связаны с CSS!

1 голос
/ 23 февраля 2012

Похоже, вы имеете дело со страницей интрасети, которую IE8 и IE9 трактуют по-разному .Если ваша страница считается находящейся в зоне интрасети, IE8 по умолчанию будет использовать режим совместимости, который может немного перегружать вашу страницу.

Вы можете обойти это, используя метаданные X-UA-Compatible.элемент, но я не проверял это сам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...