IE8 принудительно переведен в режим совместимости - PullRequest
8 голосов
/ 01 октября 2009

Моя команда разрабатывает веб-сайт с довольно сложным пользовательским интерфейсом; jQuery, ASP.Net AJAX и т. д. Конечно, я хочу, чтобы мой сайт был совместим со всеми современными браузерами. Иногда, при тестировании или общем использовании сайта во время его разработки, IE8 говорит мне, что страница не работает в стандартном режиме и переключается в режим совместимости, но никогда не говорит мне, почему. Есть ли какой-нибудь журнал или отчет или настройка или что-то в IE8, что я могу использовать, чтобы узнать, что расстроило режим стандартов IE8? Кажется, все работает нормально в FF, Chrome, Safari и IE7, так что же не нравится IE8 и как я могу это выяснить?

Ответы [ 4 ]

2 голосов
/ 03 октября 2009

Проблема связана со стилями, которые вы используете, и в которых движок IE8 не может интерпретировать. К сожалению, нет исчерпывающего списка комбинаций стилей, которые будут вызывать такое поведение. Вы можете отключить автоматическое восстановление на своем компьютере, выбрав «Сервис-> Свойства обозревателя-> Вкладка« Дополнительно »-> Просмотр -> и снимите флажок« Автоматическое восстановление после ошибок макета ... »

Это, конечно, применимо только к вашей машине и не принесет пользы вашим клиентам, если возникла ошибка компоновки. У меня нет ответа на вашу конкретную проблему, но я бы посоветовал проверить вашу css по валидатору W3C CSS: http://jigsaw.w3.org/css-validator/

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

1 голос
/ 13 августа 2013

Полагаю, есть несколько проблем, которые могут привести к переходу IE8 в режим совместимости, но стиль, который я обнаружил на своем сайте, заключался в использовании псевдоэлемента в теге body. Снятие этого запретило IE8 автоматически переключаться в режим совместимости.

Удалено это:

body:after {
    // This causes IE8 to freak out and change into Compatibility Mode!
}
1 голос
/ 01 октября 2009

Вероятно, не фактический ответ, но FWIW, если он жалуется на страницу как доставленную (например, перед тем, как вы манипулируете ею с DOM), вы сможете узнать, на что он жалуется, если вы пропустите ту же страницу через W3C валидатор . Конечно, валидатор проверяет интерпретацию стандартов валидатором (что очень хорошо, хотя, возможно, и не идеально), а не интерпретацию стандартов Microsoft (без комментариев), поэтому они не всегда могут совпадать ...

0 голосов
/ 01 октября 2009

Проверьте на Quirksmode , чтобы узнать, знают ли они очевидные причины.

...