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

StackOverflow https://stackoverflow.com/questions/623047

Вопрос

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

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

Это было полезно?

Решение

До 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 ( имя, значение);

Другие советы

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

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

то есть

jQuery.support.boxModel; //false in IE when in quirksmode, true otherwise.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top