2010-06-23 1 views
7

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

Согласно документам Microsoft, следующие условия могут вызвать страница будет отображаться в режиме совместимости (http://msdn.microsoft.com/en-us/library/cc288325%28VS.85%29.aspx):

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

Просмотрев страницу, я исключил первые возможности, так что это была ошибка страницы на странице. Я бы хотел найти эту ошибку.

+0

Что касается ошибки макета страницы: представление совместимости активируется, когда ошибка рендеринга IE8 встречает «неустранимую ошибку». Я не уверен, что это. Но я бы предложил сделать вашу страницу проверкой HTML (что у DOCTYPE у вас есть?), Попробуйте частично удалить часть CSS и JavaScript, чтобы вы могли исключить, что вызывает проблему, – Daniel

ответ

4

Проверьте, есть ли у вас <meta> теги, заставляющие IE работать в режиме совместимости.

Вы можете заставить его оказывать в IE8 (полностью CSS 2.1 совместимый), если вы хотите:

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

Обратите внимание, что 'X-UA-Compatible' метатег должен быть первым метатег в 'head' –

0

Если у вас есть скрытый элемент с ID Compat-предупреждение:

Javascript ж/JQuery :

$(function(){ 
    function showCompatWarning() { 
     $('#compat-warning') 
      .css('display','block') 
      .css('height','auto') 
      .show(); 
    } 
    var tridentOffset = navigator.appVersion.indexOf('Trident/'); 
    if (tridentOffset === -1) return; 
    var jscriptVersion = 0; 
    /*@cc_on @*/ 
    /*@if (@_jscript) jscriptVersion = @_jscript_version ; @*/; 
    /*@end @*/ 
    var tridentVersion = parseInt(navigator.appVersion.substr(tridentOffset+8),10); 
    var guessIEVersion = tridentVersion + 4; 
    if ((document.documentMode && jscriptVersion && jscriptVersion < 10 && jscriptVersion !== document.documentMode) || 
     (document.compatMode && document.compatMode === 'BackCompat') || 
     (document.documentMode && document.documentMode < 10 && document.documentMode != guessIEVersion)) 
     showCompatWarning(); 
}); 

Обнаружение и предупреждения, ваши первые и последние линии защиты от совместимости ад.

 Смежные вопросы

  • Нет связанных вопросов^_^