<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script language="javascript"> //alert("浏览器模式:"+document.documentMode+",文档模式:"+document.compatMode); document.write("浏览器模式:"+document.documentMode+",文档模式:"+document.compatMode); </script> </head> </html> <!-- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 设置文档为怪异模式 IE5 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/html4/strict.dtd"> 或 <!DOCTYPE HTML> 设置文档模式为标准模式 response.getWriter().println("<!DOCTYPE HTML>"); 拦截器中设置 如果document.compatMode值是”CSS1Compat” 标准模式,如果值为”BackCompat”(或undefined,说明属性根本不存在)怪异模式。 <meta http-equiv="X-UA-Compatible" content="IE=8" /> 这段代码表示开启IE8的标准渲染模式。但是不考虑<!DOCTYPE>指令。 <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" /> 这段代码表示标准模式显示,同时使用<!DOCTYPE>指令确定如何呈现内容。一般我们首选这种兼容性模式。 response.setHeader("X-UA-Compatible","IE=8"); 拦截器中设置 查看浏览器模式 document.documentMode 值为(8); 注:如果一个页面没有指定浏览器模式,当用高于IE8的浏览器查看时地址栏会有兼容性视图按钮; -->
javascript:alert("浏览器模式"+document.documentMode+",文档模式:"+document.compatMode)
在较新的IE浏览器中(如IE8, IE9, IE10),为了解决兼容性的问题,引入了浏览器模式和文档模式两个概念,浏览网页时可以通过按F12键看到这两种模式。
浏览器模式的主要作用是为兼容较早版本的IE,它会控制浏览器发出的UserAgent,表示以哪个版本的浏览器发出请求,以此来允许为某个特定IE版本设计的代码正确执行(举例来说:有些代码真是判断ie版本的,还有css里也有判断ie版本的)。
文档模式的主要作用是影响浏览器显示网页HTML的方式,在接到返回的HTML文件后,决定以哪个IE版本的文档模式解析该页面(举例来说:JS脚本就是依赖文档模式,IE9的js变化就需要IE9文档模式来支持)。
http://www.csdn.net/article/2012-10-22/2811049
http://msdn.microsoft.com/zh-cn/library/cc817573.aspx
http://msdn.microsoft.com/zh-cn/library/cc288325(v=vs.85).aspx#控制默认呈现