IE6到IE9的兼容性问题与升级指南

需积分: 15 3 下载量 59 浏览量 更新于2024-07-23 收藏 1.74MB DOC 举报
"IE6升级到IE9兼容性问题和操作手册" 本文档详尽地探讨了从Internet Explorer 6(IE6)升级到IE9时可能会遇到的各种兼容性问题,主要涉及HTML、CSS和JavaScript/DOM的改动。以下是对这些变化的深入解析: **HTML兼容性问题** 1. **IE7-IE8更新** - **自动添加结束标记**:在IE7和IE8中,如果P元素缺少结束标记,并紧接着TABLE、FORM、NOFRAMES或NOSCRIPT元素,浏览器会自动插入结束标记。这可能导致布局和样式的变化。 - **HTML格式支持**:浏览器开始支持正确格式的HTML标记,不再支持格式错误的HTML。这可能导致以前在IE6中正常工作的页面在新版本中出现问题。 2. **IE8-IE9更新** - **表对象模式**:表格的渲染模式变得更加标准化,与其他浏览器的兼容性增强,可能影响原有针对IE6/7的定制样式。 - **文本布局**:IE9使用自然度量而非GDI度量进行文本布局,可能会改变文本的显示效果,特别是涉及到尺寸计算和布局的部分。 **CSS兼容性问题** 1. **IE6-IE7更新** - **方框模型**:IE6到IE7的升级中,盒模型的处理方式发生变化,溢出内容不再自动扩展容器,而是与边框相交,可能导致布局错位。 - **CSS筛选器**:不再支持如*HTML、_underscore和/**/注释等特定的CSS筛选器,可能影响到使用这些技术的自定义样式。 - **SELECT覆盖问题**:修复了SELECT元素无法被div覆盖的问题,可能需要重新考虑如何实现下拉菜单的样式覆盖。 2. **IE7-IE8更新** - **CSS表达式**:IE8开始不再支持CSS表达式,推荐使用增强的CSS或DHTML逻辑替代,这会影响动态计算样式的代码。 - **currentStyle对象**:Unset属性现在返回初始值,而不是之前的行为,这可能影响到获取元素初始状态的逻辑。 - **style对象**:Unset属性值现在返回空字符串,对于依赖此行为的代码需要进行调整。 3. **IE8-IE9更新** - **文本和字体大小**:泰语和东亚语文本及字体大小的显示可能与IE8及更早版本有所不同,可能需要调整字体设置。 - **XML模式中的行为连接**:某些行为连接方法在XML模式下不可用,这可能影响到使用XML文档的交互功能。 **JavaScript和DOM兼容性问题** 1. **IE6-IE7更新** - **window.close提示**:不再允许使用特定技巧绕过window.close的用户确认提示,这可能影响到自动关闭窗口的脚本。 - **模式对话框**:脚本创建的模式或无模式对话框的外观可能有所改变,可能需要调整对话框的样式。 2. **IE7-IE8更新** - **“class”语法支持**:支持使用""class"语法,而不再仅限于"className"属性,这可能影响到旧版IE的向后兼容性。 - **属性集合**:属性集合不再包含所有可能的属性,属性排序也发生了变化,可能影响到遍历属性的代码。 - **GetElementById**:区分大小写,并且不再搜索名称属性,这可能需要更新查找元素的逻辑。 3. **IE8-IE9更新** - **createElement方法**:不允许在createElement方法中使用尖括号<>,这可能影响到动态创建元素的方式。 - **arguments.caller属性**:IE9标准模式不支持该属性,需要使用其他方法来追踪调用栈。 - **函数指针调用**:不再支持使用不带".call"或".bind"的函数指针调用,需要使用这些方法来确保正确绑定上下文。 - **内容属性和DOMexpando**:不再连接内容属性和DOMexpando,可能影响到动态添加属性的代码。 - **JavaScript属性列举**:属性列举在IE9中有变化,可能影响到遍历对象属性的逻辑。 从IE6升级到IE9的过程需要对HTML、CSS和JavaScript代码进行大量检查和调整,以确保在新版本的浏览器中正常运行。开发者应特别关注上述提到的改变,并对代码进行相应的优化和重构。