我知道现代浏览器一般有两种渲染模式:标准模式和怪癖模式。浏览器检测标题 DocType。
问题是如何在运行时检测当前页面的渲染模式。是否有任何 Firebug 工具可以做到这一点?
我知道现代浏览器一般有两种渲染模式:标准模式和怪癖模式。浏览器检测标题 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( name, value );
您还应该看看 jQuerys jQuery.support 。它会告诉你浏览器支持哪些标准(boxModel、opacity 等)
http://docs.jquery.com/Utilities/jQuery.support
IE
jQuery.support.boxModel; //false in IE when in quirksmode, true otherwise.