compatMode与documentMode呈现模式

        随着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之后新增的。

你可能感兴趣的:(compatMode与documentMode呈现模式)