- 浏览: 63448 次
- 性别:
- 来自: 四川
最新评论
注意:本文档是预备文档,随时可能变更。
对于 Web 开发人员来说,文本兼容性是一个要考虑的重要问题。Windows Internet Explorer 8 引入了文本兼容性模式,该模式允许 Web 开发人员将浏览器设置为以与旧版本相同的方式显示网页,从而允许开发人员选择更新时间。
本文档将介绍由 Windows Internet Explorer 8 支持的文本兼容性模式,以及如何使用自定义标头基于每个页面或每个站点实现这些模式。实现适当的兼容性模式后,可以确保站点与 Windows Internet Explorer 8 及更高版本兼容。
各种兼容性模式
Windows Internet Explorer 8 支持多种兼容性模式,它们可启用不同的受支持的功能,并影响内容的呈现方式。例如,
IE5 模式呈现内容时,像是使用了 Windows Internet Explorer 7 的 Quirks 模式,这与 Windows Internet Explorer 5 显示内容的方式很相似。
IE7 模式呈现内容时,无论页面是否包含 <!DOCTYPE> 指令,都像是使用了 Windows Internet Explorer 7 的标准模式。
EmulateIE7 模式通知 Windows Internet Explorer 使用 <!DOCTYPE> 指令确定如何呈现内容。标准模式指令以 Windows Internet Explorer 7 标准模式显示,而 Quirks 模式指令以 IE5 模式显示。与 IE7 模式不同,EmulateIE7 模式遵循 <!DOCTYPE> 指令。对于多数网站来说,它是首选的兼容性模式。
IE8 模式最大限度地支持行业标准(包括 W3C Cascading Style Sheets Level 2.1 Specification 和 W3C Selectors API,并能有限支持 W3C Cascading Style Sheets Level 3 Specification(工作草案)。
Edge 模式通知 Windows Internet Explorer 以最高级别的可用模式显示内容,这实际上破坏了“锁定”模式。对于 Windows Internet Explorer 8,这与 IE8 模式是等效的。如果(假定)Windows Internet Explorer 的未来版本支持更高级别的兼容模式,设置为 Edge 模式的页面将显示在由该版本支持的最高级别模式中;但是,当使用 Windows Internet Explorer 8 查看时,这些相同的页面仍将显示在 IE8 模式中。由于在 Windows Internet Explorer 的未来版本中呈现页面内容可能出现意外,建议 Web 开发人员将 Edge 模式仅用于测试页面和其他非生产活动。
基于每个页面指定兼容性模式
要为网页指定文本模式,请使用 META 元素,以在该网页中包含 X-UA-Compatible http-equiv 标头。以下示例指定了 EmulateIE7 模式兼容性。
<html> <head> <!-- Mimic Internet Explorer 7 --> <title>我的网页</title> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> </head> <body> <p>内容在此处。</p> </body> </html>
Content 属性指定了该页面的模式;例如,要模仿 Windows Internet Explorer 7 的行为,请指定 IE=EmulateIE7。同样,可指定 IE=5、IE=7 或 IE=8 以选择其中一种兼容性模式。您还可以指定 IE=edge 以通知 Windows Internet Explorer 8 使用最高级别的可用模式。
X-UA-compatible 标头不区分大小写;但是,它必须显示在网页中除 TITLE 和其他 META 元素以外的所有元素之前的标头(HEAD 部分)中。
基于每个站点指定兼容模式
通过使用 Web 服务器为站点定义自定义 HTTP 响应标头,可为网站指定文本模式。HTTP 响应标头是 Web 服务器附加到为响应 HTTP 请求而发送到浏览器中的文件的信息,这些信息通常包含发送回文件的日期、大小和类型。
下列文档介绍了将 Web 服务器配置为将自定义 HTTP 响应标头附加到所有网页中所需的步骤。这将导致 Windows Internet Explorer 8 使用指定的文本兼容性模式,例如 EmulateIE7。
如果使用 Web 服务器指定了默认文本兼容性模式,则可通过在特定的网页中指定其他文本兼容性模式来覆盖该设置。在该网页中指定的模式优先于由服务器指定的模式。
使用脚本确定文本兼容性模式
要使用 Windows Internet Explorer 8 确定网页的文本兼容性模式,请使用 document 对象的 documentMode 属性。例如,将以下内容键入到 Windows Internet Explorer 8 的地址栏中,可显示当前网页的文本模式。
javascript:alert(document.documentMode);
documentMode 属性可返回与页面的文本兼容性模式相对应的数值。例如,如果所选页面支持 IE8 模式,则 documentMode 会返回 8。
注意:在 Windows Internet Explorer 6 中引入的 compatMode 属性已不受支持,取而代之的是在 Windows Internet Explorer 8 中引入的 documentMode 属性。当前使用 compatMode 的应用程序仍然可以在 Windows Internet Explorer 8 中运行;但是,它们已更新为使用 documentMode。
如果希望使用 JavaScript 确定文本的兼容性模式,请在其中包含支持 Windows Internet Explorer 旧版本的代码,如以下示例所示。
engine = null; if (window.navigator.appName == "Microsoft Internet Explorer") { // 这是一个 IE 浏览器。引擎处于哪种模式下? if (document.documentMode) // IE8 engine = document.documentMode; else // IE 5-7 { engine = 5; // 假设为 quirks 模式;除非另外证实是其他模式 if (document.compatMode) { if (document.compatMode == "CSS1Compat") engine = 7; // 标准模式 } } // 引擎变量现在包含文本兼容性模式。 }
此处使用的文档对象表示给定浏览器窗口中的 HTML 文档,可用来检查、修改 HTML 文档或将内容添加到该文档以及处理该文档中的事件。
使用条件注释确定文本兼容性模式
如果只需要适应 Windows Internet Explorer,以下代码示例说明了如何使用条件注释来适用于当前版本或旧版本。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN"> <html> <head> <title>测试页</title> <meta http-equiv="X-UA-Compatible" content="IE=8"/> <!--[if gte IE 8]> <style type="text/css"> body { color:#0000ff; background-color:#000000; } </style> <![endif]--> <!--[if lt IE 8]> <style type="text/css"> body { color:#000000; background-color:#ffffff; } </style> <![endif]--> </head> <body> <h1> <!--[if gte IE 8]> 第 1 章。 <![endif]--> 第一章 </h1> <h1> <!--[if gte IE 8]> 第 2 章。 <![endif]--> 第二章 </h1> 将看到任何版本的文本。 </body> </html>
有关版本控制和 Windows Internet Explorer 模式的详细信息,请参阅定义文本兼容性。
该文转自微软官方:http://msdn.microsoft.com/zh-cn/library/cc817574.aspx
发表评论
-
struts2 中获取 web资源的方式
2016-01-08 17:02 533在struts2中获取 web资源的方式大致可分为获取扩展 ... -
sql server、db2、oracle 存储过程动态sql语句示例
2015-01-31 19:00 1839Oracle CREATE OR REPLACE PRO ... -
ie9 中出现不明的异常(参数是必选项 (Argument not optional)、尚未实现)等
2015-01-27 23:57 1311<script type="text/jav ... -
SAXParseException: The content of element type "configuration" must match
2014-09-15 23:57 1967在mybatis的配置文件中新增加<databaseI ... -
java.lang.ClassNotFoundException: Cannot find class: DB_VENDOR
2014-09-15 23:45 2007在mybatis 中使用databaseIdProvide ... -
spring mvc3 + fastjson 转换 REST 参数以及输出
2014-03-27 00:16 4253spring 3可以支持Rest风格参数,其内置了jack ... -
eclipse中编辑log4j 的xml配置文件时,自动提示
2014-03-27 00:05 894方法1. 配置log4j.dtd文件: Windows - ... -
java json 转换之 Jackson 框架
2013-08-01 21:50 1169转自:http://www.cnblogs.com/hooj ... -
eclipse/myeclise 自定义注释中的变量名称
2013-07-01 23:18 972eclipse/myeclipse中自带了 ... -
Eclipse Class Decompiler——Java反编译插件
2012-11-08 22:41 1241Eclipse Class Decompiler,整 ... -
struts+spring+hibernate整合问题解决方法 陆续更新中....
2009-01-01 10:33 882在整合ssh过程中出现的问题和解决方法: 一、 严重: Ser ... -
DWR通过Annotation与spring整合
2009-01-21 22:05 668DWR 2.0 增加了一个很有趣的新特性,Annotat ... -
div嵌套页面 div加载页面 (其中获取目标页面的内容是用dwr框架连接java程序做的)
2009-03-15 16:58 659前段时间因为有需要,要在div中加载一个页面。但是以前没做过, ... -
tapestry autocomplete 更改样式及定位
2009-07-09 19:02 722版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文 ... -
Java中的main()方法详解
2009-07-12 16:23 653源文作者:leizhimin 源文链接:http:/ ... -
tapestry5 集成 spring 的事务管理
2009-07-22 15:43 600说明:使用的是tapestry5.1.0.5 和spring ... -
tapestry5 布局 参数的处理
2009-07-23 17:24 432<?xml version="1.0" ... -
tapestry不支持 等html特殊符号的解决方法
2009-07-23 17:34 545在使用tapestry时,偶然发现使用 &a ... -
WebService大讲堂之Axis2(1):用POJO实现0配置的WebService
2009-07-28 15:01 430转自:http://space.itpub.net ... -
WebService大讲堂之Axis2(2):复合类型数据的传递
2009-07-28 15:25 519转自:http://space.itpub.net/12921 ...
相关推荐
在谷歌和火狐浏览器中能够正常显示数据,但在IE11浏览器中却无法正确显示,并且会抛出错误“HTML1114 (HTTP 标头)的代码页 gb2312 覆盖(META 标记)的冲突的代码页 utf-8”。 **描述:“上传excel表,将excel数据...
IE8作为微软推出的一款重要浏览器,不仅增强了对网络标准的支持,还引入了一项名为“文件兼容性”的关键特性,旨在帮助网页在未来的IE版本中保持一致的显示效果。本文将深入探讨IE8的文件兼容性代码及其应用,以便...
在CSS兼容性方面,白皮书指导开发者如何解决3D转换、过渡和动画等CSS3特性在IE10中的兼容性问题。通过使用前缀或者兼容性前缀,开发者可以确保这些现代CSS特性的兼容性。 为了测试和调试网站在IE10中的兼容性,...
在网站开发过程中,尤其是涉及到IE浏览器的兼容性问题时,开发者常常会遇到一系列挑战。由于不同版本的Internet Explorer(IE6、IE7、IE8、IE9、IE10)对Web标准的支持程度不一,这导致在这些浏览器中运行同一段代码...
虽然现代浏览器通常使用CSS3的滤镜来实现这些功能,但在IE中仍然需要使用Filter属性。下面是一个简单的示例: ```css #item { width: 200px; height: 200px; background-color: red; filter: alpha(opacity=50)...
在网站开发中不免因为各种兼容问题苦恼,针对兼容问题,其实IE给出了解决方案Google也给出了解决方案 百度也应用了这种方案去解决IE的兼容问题 百度源代码如下 <!Doctype html> ...
- `IE=EmulateIE9`:即使在IE8或更低版本的IE中,也强制使用IE9的渲染模式。 ### 实施步骤 1. **服务器端配置**:如果你的网站托管在IIS6服务器上,你可以通过IIS Manager(inetmgr.exe)进行设置。进入网站的属性...
需要注意的是,在IE中可能会产生双倍的间距,此时可以尝试使用`display: inline-table;`。 2. **Block与Inline元素的区别** - **Block元素特点**:总是在新行开始,可以控制高度、宽度、行高和边距。 - **Inline...
尽管IE6、IE7、IE8在今天已经逐渐退出历史舞台,但为了确保网站的全面兼容性和用户体验,掌握这些旧版浏览器的特性及应对策略仍然是必要的。通过合理的CSS hack、布局调整以及适当的脚本辅助,可以有效地解决大部分...
在网页开发中,兼容性问题是一个常见且棘手的问题,尤其是涉及到老版本的Internet Explorer(IE6、IE7、IE8)和Firefox等其他浏览器。这些浏览器对于CSS(层叠样式表)的解析方式存在差异,导致在不同浏览器中页面...
在IT行业的前端开发领域,浏览器兼容性一直是一个关键议题,特别是在处理旧版浏览器如IE6、IE7、IE8以及火狐(Firefox)时。本文将深入探讨这些浏览器的兼容性问题,以及如何通过特定的技术手段来实现跨浏览器的一致...
2. **JavaScript兼容性**:ES6及以上版本的JavaScript语法在老版IE中可能不被支持。使用Babel这样的工具将现代JavaScript转换为更广泛的浏览器支持的ES5语法是必要的。 3. **HTML5新元素和API**:如`<canvas>`、`...
然而,`video.js` 对于某些浏览器的原始HTML5视频属性和事件的兼容性仍然有限,特别是像IE8这样的老版本浏览器。这时,`html5media` 插件就起到了关键作用。`html5media` 是一个轻量级的JavaScript库,它的主要目标...
2. **帮助搜索引擎进行页面分析**:`<meta>`标记可以包含描述和关键词等内容,帮助搜索引擎更好地理解页面主题,从而提高页面的可见性。 #### 三、Meta标记的重要性 根据描述中的数据,仅有少部分网站真正利用了`...
在代码示例中,通过在`<head>`标签中加入`<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">`来解决IE7和IE8的兼容性问题。同时,通过CSS Hack和媒体查询,针对不同浏览器提供了不同的颜色样式,确保在...
- **DOM兼容性**:IE6、IE7和IE8在DOM支持方面存在差异,例如对于某些DOM属性和方法的支持程度不同。例如,IE6对于某些DOM事件模型的支持较弱,而IE7和IE8在这方面有所改进。 #### 五、总结 总的来说,IE6、IE7和...
描述中同样重复了标题的信息,意味着压缩包中的内容可能包含详细步骤、解决方案或者代码片段,用于帮助用户在IE8中将浏览器设置为IE7模式,以解决可能遇到的兼容性问题。 标签也反映了同样的主题,再次强调问题的...
在实际项目中,你可能还需要考虑其他兼容性问题,如IE8的跨域限制、XMLHttpRequest的版本差异等。确保前端代码使用适合IE8的Ajax实现,例如jQuery的$.ajax方法,并处理好跨域请求。 文件结构方面,`index.jsp`应该...