Как определить режим просмотра браузера для текущей страницы?

Я знаю, что современные браузеры обычно имеют два режима рендеринга: стандартный режим и режим quirk. Браузер определяет заголовок DocType.

Вопрос заключается в том, как определить режим рендеринга текущей страницы во время выполнения. Есть ли какой-нибудь инструмент Firebug для этого?

Ответы

Ответ 1

До IE8:

alert('Page was rendered in ' +
  ((document.compatMode == 'CSS1Compat') ? 'Standards' : 'Quirks') + ' Mode.');

Для IE8:

var vMode = document.documentMode;
var rMode = 'IE5 Quirks Mode';
if(vMode == 8){
  rMode = 'IE8 Standards Mode';
} else if(vMode == 7){
  rMode = 'IE7 Strict Mode';
}
alert('Rendering in: ' + rMode);

Имейте в виду, что для получения преимуществ нового режима "Стандартного режима IE8 по умолчанию" вам нужно будет выполнять рендеринг в стандартном режиме IE8.

Этот режим влияет на рендеринг HTML + CSS , а также на исправления для методов JavaScript, таких как document.getElementById( id ); и .setAttribute( name, value );

Ответ 2

Вы также должны посмотреть jQuerys jQuery.support. Он расскажет вам, какие стандарты поддерживаются браузером (boxModel, opacity и т.д.).

http://docs.jquery.com/Utilities/jQuery.support

то есть.

jQuery.support.boxModel; //false in IE when in quirksmode, true otherwise.