13

我知道现代浏览器一般有两种渲染模式:标准模式和怪癖模式。浏览器检测标题 DocType。

问题是如何在运行时检测当前页面的渲染模式。是否有任何 Firebug 工具可以做到这一点?

4

2 回答 2

22

在 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 );

于 2009-03-08T04:57:40.880 回答
1

您还应该看看 jQuerys jQuery.support 。它会告诉你浏览器支持哪些标准(boxModel、opacity 等)

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

IE

jQuery.support.boxModel; //false in IE when in quirksmode, true otherwise.
于 2009-03-08T09:11:18.053 回答