Как определить режим рендеринга браузера для текущей страницы? - PullRequest
13 голосов
/ 08 марта 2009

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

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

Ответы [ 2 ]

22 голосов
/ 08 марта 2009

До 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 );

1 голос
/ 08 марта 2009

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

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

т.е.

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