随着IE开始区分标准模式和怪异模式,确定浏览器处于何种模式的需求也就应运而生。IE为document对象添加了一个名为compatMode属性,这个属性的唯一使命就是表示浏览器处于什么模式。如下面的例子所示,如果是标准模式,则document.compatMode的值等于”CSS1Compat“,如果是怪异模式,则document.compatMode的值等于”BackCompat“。
codeif (document.compatMode == "CSS1Compat") {
alert("Standards mode");
} else {
alert("Quirks mode");
}
后来,Firefox、Opera和Chrome都实现了这个属性。Safari从3.1版开始也实现了document.compatMode
IE8又为document对象引入了一个名为documentMode的新属性,其用法如下面的例子所示。这是因为IE8有3中不同的呈现模式,而这个属性正是为了区分这些模式。这个属性的值如果是5,则表示怪异模式(即IE5模式);如果是7,则表示IE7仿真模式;如果是8,则表示IE8标准模式。
if (document.documentMode > 7) {
alert("IE 8+ Standards Mode");
}
documentMode取得的值是真正的IE按照那种模式去解析页面,$.browser.version所取得的IE版本是不准确的【嵌套iframe的时候】,特别是外部嵌套webbrowser的时候,不管是IE8还是IE9,用webbrowser嵌套后用$.browser.version取到的IE版本总是7.0,如果增加了<meta http-equiv="x-ua-compatible" content="IE=5;IE=8;" />这个标记,取到的结果依然是7.0,但是实际上取到的documentMode为8,而页面也是按照IE=8的模式去解析的。由此可以看出,通过$.browser.version取到的版本不是真正页面按照那个IE版本去解析的,而documentMode取得的结果却是IE按照哪个模式进行解析的,documentMode是IE8之后新增的。
本文详细解释了浏览器在标准模式和怪异模式之间的区别,特别关注了IE浏览器如何通过document对象的compatMode和documentMode属性来区分这两种模式。文章还深入探讨了不同浏览器实现这些属性的情况,以及在嵌套iframe和使用特定元标记时documentMode属性的表现。
192

被折叠的 条评论
为什么被折叠?



