IE6升级到IE11兼容性问题和操作手册
IE6升级到IE11兼容性问题和操作手册
2015/3/2 Bob Liu
目录
概述... 2
第一章:HTML. 3
第一节:IE7-IE8更新... 3
1. 如果缺少结束标记的 P 元素后跟 TABLE、FORM、NOFRAMES 或 NOSCRIPT 元素,会自动添加结束标记。 3
2. 支持格式正确的有效标记,不再支持格式错误的 HTML。... 4
3. Button标签的默认type类型从button改为submit。... 5
4. 不再支持 COL 及 COLGROUP 元素的部分属性及为其设定的CSS 特性.6
第二节: IE8-IE9更新... 7
1. 表对象模式现在更加符合其他浏览器。... 7
2. 文本布局使用自然度量而不是图形设备接口 (GDI) 度量。... 9
第二章:CSS. 11
第一节:IE6-IE7更新... 11
1. 方框模型溢出内容现与方框相交,不再让方框自动增长适应内容。... 11
2. 不再支持某些 CSS 筛选器(如 *HTML、_underscore 和 /**/ 注释)。... 13
3. 已解决SELECT 元素不能被div覆盖的问题。... 15
4. CSS样式区分大小写。... 16
5.Style中的height,width结尾需要输入单位,如px. 16
第二节:IE7-IE8更新... 17
1. 不再支持 CSS 表达式,改为支持增强的 CSS 或DHTML 逻辑。... 17
第三节:IE8-IE9更新... 18
1. 泰语和东亚语文本和字体大小的显示可能小于其他字样。... 18
2. 某些行为连接方法在 XML 模式中不可用。... 19
第四节:IE9-IE10更新... 20
1. 不再支持 CSS behavior,完全废弃htc表达式。... 20
第三章:Javascript and DOM.. 21
第一节:IE6-IE7更新... 21
1. 不再允许用于绕过 window.close 提示的window.opener 技巧。... 21
2. 从脚本创建的模式或无模式对话框看起来似乎稍微变大。... 21
第二节:IE7-IE8更新... 22
1. 支持“class”语法,不再支持“className”属性语法。... 22
2. 属性集合不再包含 Internet Explorer 可识别的所有可能属性。... 23
3. 属性排序已更改,影响了属性集、innerHTML 和outerHTML。... 24
4. GetElementById区分大小写,且不再搜索名称属性。... 24
5. currentStyle对象的Unset属性现在返回其初始值。... 25
6. style对象的 Unset 属性值现在返回空字符串。... 26
第三节:IE8-IE9更新... 27
1. createElement 方法中不允许使用尖括号<> 。... 27
2. IE9 标准模式不支持arguments.caller 属性。... 28
3. 不再支持使用不带“.call”或“.bind”的函数指针调用方法。... 29
4. 不再连接内容属性和 DOM expando。... 30
5. JavaScript属性列举在IE9 中不同。... 31
6. 数学精确度在IE9 中不同。... 33
7. 间接“eval”函数调用的行为方式不同。... 34
8. IE9 处理含大型索引的数组项目的方式不一样。... 35
9. 重叠元素会被复制。... 36
10. DOM中会保留空格。... 37
11. 部分DOM 事件已过时。... 38
第四节:IE10-IE11更新... 39
1. 已删除attachEvent,改用addEventListener。... 39
2. 已删除window.execScript,改用eval。... 39
3. 已删除window.doScroll,改用window.scrollLeft、window.scrollTop。... 39
4. 已删除document.all,改用document.getElementById。... 40
5. 已删除document.fileSize、img.fileSize,使用 XMLHttpRequest 可提取源。... 40
6. 已删除script.onreadystatechange 和 script.readyState,改用script.onload。... 40
7. 已删除document.selection,改用window.getSelection。... 40
8. 已删除document.createStyleSheet,改用document.createElement("style")。... 40
9. 已删除style.styleSheet,改用style.sheet。... 40
10. 已删除window.createPopup,改用 div 或iframe(zIndex 值很高)。... 40
第四章:其他更新... 40
第一节:IE7-IE8更新... 40
1. 文件上载控件仅向服务器提交文件路径,而不提供完整路径。... 40
第二节:IE8-IE9更新... 41
1. 预设使用者代理(UA) 字串已变更.41
概述
本文档内容涵盖:IE6升级到IE11过程中Javascript, DOM, HTML, CSS等方面的变化和调整。
1. Appendix 1: Internet Explorer 6 to Internet Explorer 9 BrowserChanges
http://technet.microsoft.com/en-us/library/gg699425.aspx
2. 附录 1:从 Internet Explorer 6 到 Internet Explorer 9 的浏览器更改
http://technet.microsoft.com/zh-cn/library/gg699425.aspx
3. Internet Explorer 9 Compatibility Cookbook
http://msdn.microsoft.com/zh-cn/library/ff986083(v=vs.85).aspx
http://msdn.microsoft.com/zh-tw/ie/gg712396
5. Internet Explorer 11 开发人员指南
https://msdn.microsoft.com/zh-cn/library/ie/bg182636(v=vs.85).aspx
第一章:HTML
第一节:IE7-IE8更新
1. 如果缺少结束标记的 P 元素后跟 TABLE、FORM、NOFRAMES 或 NOSCRIPT 元素,会自动添加结束标记。
所属分类 |
版本更新 |
HTML |
IE7-IE8 |
<title>Simple PElement Closing Example</title>
<meta http-equiv="X-UA-Compatible" content="IE8"/>
<p>This is thefirst paragraph</p>
<p style="margin-left:30px">This is another paragraph. <!-- P not closed -->
<table border="1px" cellpadding="2px">
<tr><td>This is atable cell.</td></tr>
<p>This is athird paragraph.</p>
然而,与IE8时,在默认模式下,TABLE元素对齐到左边缘。因为IE8会自动关闭显示表元素之前闭合的P元素,TABLE元素的子元素。IE8下Html结构图如下:
2. 支持格式正确的有效标记,不再支持格式错误的 HTML。
MSDN原文:Malformed HTML is no longer supported, in favor of well-formed, validmarkup.
所属分类 |
版本更新 |
HTML |
IE7-IE8 |
Malformed HTML isno longer supported, in favor of well-formed, valid markup.
</li> <!—多了一个标记,will Closes1.1 in IE8, but not IE7 -->
Ensure your markup is well-formed andvalid.
3. Button标签的默认type类型从button改为submit。
所属分类 |
版本更新 |
HTML |
IE7-IE8 |
如果不为Button设置type属性,旧版IE会将其自动设为button类型,而从IE8开始,为了遵守W3C标准,改变了原来的默认做法,现在默认此button为submit,而非button类型。
<button id="button1"type="button" style="width:150px;height:50px">按钮</button>
4. 不再支持 COL 及 COLGROUP 元素的部分属性及为其设定的 CSS 特性.
<COL align="left" width="80"></COL>
<COL align="right" width="150" style=”display:none”></COL>
<TH align="left" name="Heading 1">日期</TH>
但IE9已经不支持页面中的align和style属性了,但还支持width属性。
因此,我们只好放弃在colgroup, col中设置样式,转而直接在td, th中设置。
至于仍然支持的width属性,建议也同样修改,以保持统一的风格, 到Html5中,将不再支持width属性了.
http://www.w3school.com.cn/html5/tag_colgroup.asp
第二节: IE8-IE9更新
MSDN原文:Table Object ModelIs Now More Consistent with Other Browsers.
所属分类 |
版本更新 |
HTML |
IE8-IE9 |
为了提高IE和其他浏览器之间的一致性,IE9的标准模式的表Table发生了以下变化:
•Table的行集合有着不同的顺序。无论他们在文档内的顺序是什么,首先是THead内容, 其次是TBody内容,最后才是TFoot内容。
•调用rows统计将返回一个表内的所有层次的TR行数,包括直属TR行。也就是指把table里面的所有TR对象都计入在rows列表里面,而不论它是在根节点还是thead/tfoot/tbody里面
•使用getElementsByTagName和HtmlElement.children方法不返回注释节点。
•Extra thead and tfootelements do not appear in the tBodies collection.
•The getElementsByTagNameand HtmlElement.children methods do not return comment nodes.
如果不考虑这些变化在您的应用程序,应用程序可能会遇到次要的脚本错误,页面始终保持在加载中状态,或创建非预期内容等错误。
<htmlxmlns="http://www.w3.org/1999/xhtml">
<script type="text/javascript">
var table = document.getElementById("mytable");
var tBodyResult = "有" +table.tBodies.length + "个tBody\n\n";
for (var i = 0; i < length; i++) {
rowResult += "第" + (i+1) + "行: "+ rows[i].innerHTML + "\n";
alert(tBodyResult + rowResult);
<button οnclick="CheckTable()">ClickMe</button>
2. 文本布局使用自然度量而不是图形设备接口(GDI) 度量。
MSDN原文:Text Layout Uses Natural Metrics.
所属分类 |
版本更新 |
HTML |
IE8-IE9 |
Other document modes for Windows InternetExplorer continue to use GDI metrics.
不要假设特定字型的大小在不同浏览器间或是在相同浏览器内都会依相容的方式呈现,因为使用者有可能会缩放浏览器的字体(例如,125%)。
利用下列设计准则,可确定您的网页显示文字版面配置的方式一致:
5.如果您允许用户改变页面字体的大小,就要请您确认页面可以适应文字换行。
6.如果您发现文字换行的问题,请您调整页面,确保页面可以恰当地呈现文字。
<input type="text"style="width:100px" />
这里就指定了text box的size,非静态non-statically意思是说我们不要去指定size。如果一定要指定,尽量用如上的px作为单位。
Use the following design guidelines to makesure that your webpages display text layout consistently:
•Set a text box's sizeto a specific number of pixels.
•Include extra space inyour text boxes and avoid tight spaces.
•Use non-staticallysized text boxes.
•Include extra space inbounding areas that depend on other page elements.
•Make sure your page canaccommodate text wrapping if you permit users to change the page font size.
Avoid the following designs for textlayout:
•Depend on font sizes torender the same way across browsers.
第二章:CSS
第一节:IE6-IE7更新
1.方框模型溢出内容现与方框相交,不再让方框自动增长适应内容。
MSDN原文:Box model overflow content now intersects box, no longer auto-grows boxdiv to fit content.
所属分类 |
版本更新 |
CSS |
IE6-IE7 |
div { width : 100px; height: 100px; border: thin solid red;}
blockquote { width: 125px; height: 100px;
margin-top: 50px; margin-left: 50px;
<p>some text long enough to make it interesting.</p>
下图显示了在IE6和IE7中此段代码的不同效果,(上图为IE6,下图为IE7):
从图中可以看出,<blockquote>内容超出了div的边界,在IE7下,div不再自动增长来装下<blockquote>,而是让<blockquote>伸出div的边界。
请检查相关的页面设计,如果以前依赖自动增长这一特性,现在就需要修改代码,来避免页面布局显示错误的风险。
http://msdn.microsoft.com/en-us/library/bb250496(VS.85).aspx
2. 不再支持某些 CSS 筛选器(如 *HTML、_underscore 和 /**/ 注释)。
所属分类 |
版本更新 |
CSS |
IE6-IE7 |
如果你使用这些filters,你应该了解它们的效果。这个可以帮助你做出针对以后版本的Internet Explorer和其它浏览器的更有效的并且适应改进后的CSS的设计。
在IE7中,我们修改了许多潜在解析错误,这些错误有可能会阻止下面的filter在以前的IE版本中正常工作。如果你的页面中包含这些filter,请去除或者更换它们。
这个CSS filter基于一个解析错误。它被用于显示排除内容。这些内容将被Internet Explorer7和以后的版本忽略。
/* The following rules used to apply onlyto
IEbut now get ignored by IE7 and higher */
/* The following rule used to applymin-height
tobrowser who understand this property and
height to IE. In IE7, _heightwill be treated
asa custom property (no height will be applied) */
这个CSS filter基于一个解析错误。它被用来在strict模式下隐藏属性(这个filter在quirk模式下不起作用)。在Internet Explorer7中,这个属性可以被解析和使用。
/* The following rule used to hide theheight
property to Internet Explorer. In IE7, the
3. 已解决SELECT 元素不能被div覆盖的问题。
所属分类 |
版本更新 |
CSS |
IE6-IE7 |
Select元素现在已改为无窗口控件, 这项改变使z-order 和 zoom缩放能正常工作了,也就说, 这次彻底解决了IE6中Select不能被div覆盖的问题,除此之外,其他都和以前保持一致;
但是,如果有应用程序依赖从Select控件获取窗口的HWND就必须修改为使用DOM了,因为Select元素现在是无窗口控件,也就得不到HWND了。
Select control: CSS style-able and notalways on top
http://blogs.msdn.com/b/ie/archive/2006/01/17/514076.aspx
4. CSS样式区分大小写。
如下代码,在IE6下,CSS样式类名不分大小写,但从IE7开始,区分大小写了, IE8和IE9也区分大小写,也就是说,我们CSS样式类和使用它的地方,必须保持完全一致。
<meta http-equiv="X-UA-Compatible"content="IE=7"/>
background-color:blue; /* ie 9*/
<p class="Field"> this is for div1</p>
<p style="background-color:blue"> this is for div2 </p>
5.Style中的height, width结尾需要输入单位,如px
如下代码,在ie6下,能够读取到style中定义的height=30,但从ie7开始,就必须在height:30后面加上单位px了,否则,读取不出来height值。
<meta http-equiv="X-UA-Compatible"content="IE=6"/>
<script type="text/javascript">
alert(document.getElementById("p1").style.height);
<p id="p1" style="background-color:blue; height:30">this is for div2 </p>
第二节:IE7-IE8更新
1. 不再支持 CSS 表达式,改为支持增强的 CSS 或DHTML 逻辑。
MSDN原文:CSS expressions no longer supported, in favor of improved CSS supportor DHTML logic.
所属分类 |
版本更新 |
CSS |
IE7-IE8 |
不再支持 CSS 表达式,改为支持增强的 CSS 或 DHTML 逻辑。
CSS expressions no longer supported, infavor of improved CSS support or DHTML logic.
Support for CSS Expressions has beenremoved in IE8 Standards Mode.
(new Date()).getHours()%2 ? "#000" : "#fff"
Refactor to utilize either improved CSSsupport or DHTML logic.
var elm =document.getElementById("main");
if((new Date()).getHours()%2) {
elm.style.backgroundColor = "#000";
elm.style.backgroundColor = "#fff";
第三节:IE8-IE9更新
MSDN原文:Thaiand East Asian Text and Font Sizing.
所属分类 |
版本更新 |
CSS |
IE8-IE9 |
泰文和东亚文字在IE9 看起来可能比在IE8 和旧版本中还要小。
在IE8 中,泰文和東亚文字可在下列情況下以大于指定大小的字型呈现:
2.指定的font-family不支持泰文或東亚文字,例如Arial指定的字型系列不支持泰文或东亚文字。
在IE9 中,则始终采用指定的字型大小。因此,由于后援字型不会再放大调整,文字可能看起来可能会比较小。
•The specified font sizewas 9pt or smaller
•The specified fontfamily did not support Thai or East Asian characters such as Arial
请尽可能确定CSS font-family 属性的第一个值支持您的语言。
2. 某些行为连接方法在 XML 模式中不可用。
MSDN原文:SomeBehavior-Connecting Methods Do Not Work in XML.
所属分类 |
版本更新 |
CSS |
IE8-IE9 |
用于连接行为的标记式表单在Windows IE9模式中可运作,但在xml 模式中则无法运作。
A behavior can be specified at the top of awebpage, as the following code example shows.
<?importnamespace="myNamespace" implementation = "my.htc">
This problem affects only new content.
请不要使用HTML标记,而是通过CSS的behavior属性注册,如下例所示。
You canuse CSS-based registration through elements other than the class attribute.
第四节:IE9-IE10更新
1. 不再支持 CSS behavior,完全废弃htc表达式。
所属分类 |
版本更新 |
CSS |
IE9-IE10 |
http://www.cnblogs.com/liuzhendong/archive/2013/01/09/2853823.html
http://www.cnblogs.com/liuzhendong/archive/2013/01/10/2855413.html
http://www.cnblogs.com/liuzhendong/archive/2013/01/12/2858067.html
Does IE10 standard mode still support HTMLComponent(htc)? If not, which tech will instead htc?
I don't think behaviors are supported inIE10 Standards mode....
http://samples.msdn.microsoft.com/ietestcenter/
for backward compatibility with IE10 youcan add the IE9 x-ua meta or headers....
these are public peer to peer forums... wedo not work for nor represent MS.
第三章:Javascriptand DOM
第一节:IE6-IE7更新
1. 不再允许用于绕过 window.close 提示的window.opener 技巧。
MSDN原文:window.opener trick used to bypass the window.close prompt is no longerallowed.
所属分类 |
版本更新 |
Javascript and DOM |
IE6-IE7更新 |
不再允许用于绕过 window.close 提示的 window.opener 技巧。
在IE6中,当我们用这种方法:Response.Write("<script>window.close()</script>")
2. 从脚本创建的模式或无模式对话框看起来似乎稍微变大。
MSDN原文:Modal or modeless dialogs created from script might seem slightlybigger.
所属分类 |
版本更新 |
其他 |
IE6-IE7更新 |
http://blogs.msdn.com/b/ie/archive/2006/08/25/719355.aspx
第二节:IE7-IE8更新
1. 支持“class”语法,不再支持“className”属性语法。
MSDN原文:“className” attribute syntax no longersupported, in favor of “class” syntax.
所属分类 |
版本更新 |
Javascript and DOM |
IE7-IE8 |
在IE7中,必须使用属性名称为“ClassName”来设置和检索元素的类。在IE8中已经被修改为符合标准,因此需要使用“class”来设置和检索元素的类。
return elm.getAttribute("className");
使用规范的名称,“class”,而不是为“ClassName”。
return elm.getAttribute("class");
alert(window.document.getElementById("btnAdd").getAttribute("className"));
//alert(window.document.getElementById("btnAdd").getAttribute("class"));
<form id="form1" runat="server">
<input type="button" id="btnAdd"value="123" class="INPUT" />
使用getAttribute("className"),在IE8中会得到Null的错误提示。
使用getAttribute("class"),在IE8中会得到INPUT的正确值。
2. 属性集合不再包含 Internet Explorer 可识别的所有可能属性。
所属分类 |
版本更新 |
Javascript and DOM |
IE7-IE8 |
属性集合不再包含 InternetExplorer 可识别的所有可能属性.
The attributes collection no longercontains all possible attributes recognized by Internet Explorer.
var attr =elm.attributes["checked"];
// Potential script error in IE8
Do not assume an attribute will be in theattributes collection. Check for existence first.
var attr =elm.attributes["checked"];
if(attr) return attr.specified;
3. 属性排序已更改,影响了属性集、innerHTML 和 outerHTML。
MSDN原文:Attribute ordering has changed, affectingattributes collection, innerHTML, and outerHTML.
所属分类 |
版本更新 |
Javascript and DOM |
IE7-IE8 |
属性排序已更改,影响了属性集、innerHTML和 outerHTML。
Attribute ordering has changed, affectingattributes collection, innerHTML, and outerHTML.
attr = elm.attributes[1]; // May differ inIE8
Reference attributes by name as opposed totheir position within the attributes collection.
4. GetElementById 区分大小写,且不再搜索名称属性。
MSDN原文:GetElementById is case sensitive and no longer searches nameattributes.
所属分类 |
版本更新 |
Javascript and DOM |
IE7-IE8 |
GetElementById is case sensitive and nolonger searches name attributes.
The method getElementById is nowcase-sensitive and no longer searches name attributes.
<script type="text/javascript">
// No element is found because of case difference
var test = document.getElementById("test");
Ensure case-correctness and usegetElementsByName when searching name attributes.
<scripttype="text/javascript">
var test = document.getElementById("Test")
5. currentStyle 对象的Unset属性现在返回其初始值。
所属分类 |
版本更新 |
CSS |
IE7-IE8 |
现在,currentStyle 对象的Unset 属性会返回其初始值”auto”,这是 ASP.NET 菜单控件问题的根本原因。
var zIndex = elm.currentStyle.zIndex;
注释2:z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。
例子:下面button不设置style属性(也就谈不上置width和zindex了),则currentStyle.width和currentStyle.zIndex都返回默认值auto.
<input type="button"id="btnAdd" value="123" class="INPUT" />
alert(window.document.getElementById("btnAdd").currentStyle.width);
alert(window.document.getElementById("btnAdd").currentStyle.zIndex);
Perform a check for both the backwardscompatible value and the standardized initial value.
var zIndex = elm.currentStyle.zIndex;
if(zIndex == 0 || zIndex =="auto") {
http://www.phpx.com/man/dhtmlcn/objects/currentStyle.html
6. style 对象的Unset 属性值现在返回空字符串。
MSDN原文:Unset properties values on the style object now return empty string.
所属分类 |
版本更新 |
CSS |
IE7-IE8 |
Unset properties values on the style objectnow return empty string.
Unspecified CSS Property Values
var zIndex = elm.style.zIndex;
Perform a check for both the backwardscompatible value and the empty string.
var zIndex = elm.style.zIndex;
if(zIndex === 0 || zIndex === ""){
第三节:IE8-IE9更新
1.createElement 方法中不允许使用尖括号<> 。
MSDN原文:Angle Brackets Are Not Allowed in the createElementMethod.
所属分类 |
版本更新 |
Javascript and DOM |
IE8-IE9 |
IE9不能识别createElement方法内的角括弧(<>)。如果您在IE9 的页面中使用角括弧,会发生异常。
例如,下面的例子在IE9 模式中引发异常。
var el=document.createElement("<divid='myDiv'>");
1. 使用setAttribute API 建立元素并分别新增属性,如下面的代码范例所示。
var elm =document.createElement("div");
elm.setAttribute("id","myDiv");
2. 使用innerHTML API 在父元素内建立元素,如下面的代码范例所示。
varparent=document.createElement("div");
parent.innerHTML="<divid='myDiv'></div>";
2. IE9 标准模式不支持arguments.caller属性。
MSDN原文:IE9Standards Mode Does Not Support the arguments.caller Property.
所属分类 |
版本更新 |
Javascript and DOM |
IE8-IE9 |
IE9 标准模式中不再支持arguments.caller 属性。
在下例中,IE8 和Quirks 中的所有文件模式,以及IE9 的IE7 标准和IE8 标准文件模式会传回“1”。 IE9 标准模式会发出「Object为null 或未经定义」的错误。
{
alert(arguments.caller.length);
3. 不再支持使用不带“.call”或“.bind”的函数指针调用方法。
MSDN原文:Calling a Method with a Function Pointerwithout ".call" or ".bind"
所属分类 |
版本更新 |
Javascript and DOM |
IE8-IE9 |
旧版IE中,为了使JavaScript 代码更加精简,常见的做法是将常用的方法储存为变量,然后将该变量替代该方法来使用:
d("<scriptlanguage=VBScript>");
d("<scriptlanguage=VBScript>");
简单解决此问题的方法是使用"call"方法(所有函数的属性) 明确提供适当的呼叫Object:
d.call(document, "<scriptlanguage=VBScript>");
长期解决此问题的方法是使用JavaScript 的"bind" API,建立隐含的呼叫Object与方法的关联。方法如下(同样是取自上例):
var d = document.writeln.bind(document);
d("<scriptlanguage=VBScript>"); // Now this is OK
d("<scriptlanguage=VBScript>");
d.call(document, "<scriptlanguage=VBScript>");
var d = document.writeln.bind(document);
d("<scriptlanguage=VBScript>"); // Now this is OK
MSDN原文:Content Attributes and DOM Expandos Are No Longer Connected.
所属分类 |
版本更新 |
Javascript and DOM |
IE8-IE9 |
<divid="myElement" class="b"myAttr="custom"></div>
在下面的范例中,'id' 和'className' 都是预先定义的属性:
var div = document.getElementById("myElement");
var divId = div.id; // Gets the value ofthe id content attribute
var divClass = div.className; // Gets thevalue of the class content attribute
在IE8 和之前的版本中,'myAttr' 内容属性的存在等于暗示'myAttr'DOM expando 的存在:
var divExpando = div.myAttr; // divExpandowould get the value "custom" in IE8
IE9 中的突破性变更是使用者定义的内容属性将不再暗指DOM expando。
var divExpando = div.myAttr; // divExpandowould get an undefined value
在JavaScript 代码中几乎无法直接在失败点看出此问题。而往往是在应用时才会看到失败的情形。
若要修正此问题,请使用'getAttribute'来获取使用者定义的内容属性值。建议对所有IE 版本采取此因应措施。例如(根据上个范例):
vardivExpando = div.getAttribute("myAttr");
MSDN原文:JavaScript Property Enumeration Differs in Internet Explorer 9
所属分类 |
版本更新 |
Javascript and DOM |
IE8-IE9 |
由于IE9 的JavaScript Object模型中所做的变更,JavaScript属性的列举方式跟在IE8 中可能不太一样。
当在任何文件模式内使用for…陈述式时,属性列举的顺序可能与IE8 传回的顺序不同。例如,数值属性现在是列举在非数值属性之前。下例说明IE8 与IE9 之间的列举顺序的差异:
var obj = {first : "prop1",second: "prop2", 3: "prop3"};
s+= key + ": " + obj[key] + " ";
IE8:first: prop1 second: prop2 3: prop3
IE9:3: prop3 first: prop1 second: prop2
IE8 并不包含与原型物件的内建属性同名的属性列举。 IE9 中的所有文件模式則会在列举中包含這些属性。
var obj = { first: "prop1",toString : "Hello" }
s+= key + ": " + obj[key] + " ";
IE8的所有模式: first: prop1 first: prop1
IE9的所有模式: first: prop1 toString: Hello
MSDN原文:Math PrecisionDiffers in Internet Explorer 9
所属分类 |
版本更新 |
Javascript and DOM |
IE8-IE9 |
Math precision differs from InternetExplorer 8 in certain edge cases.
var x = 6.28318530717958620000;
在IE8 的所有模式中,这会输出“2.4492127076447545e-16”。
当平台支持SSE2 时,在IE9 的所有模式中,这会输出“2.4492935982947064e-16”。
MSDN原文:Indirect 'eval' FunctionCalls Behave Differently in Internet Explorer 9.
所属分类 |
版本更新 |
Javascript and DOM |
IE8-IE9 |
间接“eval”函数调用,会在IE9 中产生与IE8 不同的结果。
在下例中,是通过将eval 函数赋值给变量并且把该变量当作eval 来调用的方式,间接调用eval 函数。
var dateFn = "Date(1971,3,8)";
indirectEval("myDate = new " + dateFn + ";");
MSDN原文:Array elements with largeindices are handled differently than in Internet Explorer 8.
所属分类 |
版本更新 |
Javascript and DOM |
IE8-IE9 |
Array elements with large indices arehandled differently than in Internet Explorer 8.
IE9 会正确处理使用介于2E+31-1 和2E+32-2 指数之间的数组项目。 IE9 的任何文件模式中并未复写IE8 行为。
当项目推送到长度为2E+31-1 的数组时,即可观察到此现象。
This can be observed when an element ispushed to an array of length 2E+31-1.
下例在IE8 输出“true”,但是在IE9 输出“false”。
The following sample prints “true” inInternet Explorer 8, but prints “false” in Internet Explorer 9.
document.write(arr["-2147483645"] == 10);
MSDN原文:Overlapping ElementsAre Cloned.
所属分类 |
版本更新 |
Javascript and DOM |
IE8-IE9 |
在IE9 中,重叠的格式化元素是会被复制的,其用意是为了减低在DOM (Document Object Model) 中语意模糊的情况。
一般来说,网站有没有这项功能看起来都一样。不过,若是您对标记中的重叠元素执行DOM 操作,该动作在IE9 中的运作方式可能不一样。
举例来说,假如您对重叠元件进行像是firstChild或nextSibling这类的DOM呼叫,这些呼叫可能不会以相同的方式运作。
使用IE开发者工具来测试您的程式码,以找出并修正所有的重叠元素。
MSDN原文:White Spaces Are Preserved inthe Document Object Model.
所属分类 |
版本更新 |
Javascript and DOM |
IE8-IE9 |
Any white space that you add to a webpagepersists in the Document Object Model (DOM).
<htmlxmlns="http://www.w3.org/1999/xhtml">
<input type="input" id="t1" value="t1"/>
MSDN原文:SomeDOM Events Are Deprecated。
所属分类 |
版本更新 |
Javascript and DOM |
IE8-IE9 |
The following Document Object Model (DOM) events features are deprecated in IE9 standards document mode and are intended to be removed in the latest standards mode of the next major release.
|
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head id="Head1"runat="server">
<scripttype="text/javascript">
//document.getElementById("btnAdd").attachEvent("onclick",ShowHello);
//应用标准方法,注意事件不是onclick,而是click.
document.getElementById("btnAdd").addEventListener("click",ShowHello);
<bodyοnlοad="LoadEverything()">
<form id="form1" runat="server">
<input type="button" id="btnAdd" value="btnAdd" />
第四节:IE10-IE11更新
参考资料:https://msdn.microsoft.com/zh-cn/library/ie/bg182625(v=vs.85).aspx#legacyAPIs
1. 已删除attachEvent,改用addEventListener。
2. 已删除window.execScript,改用eval。
3. 已删除window.doScroll,改用window.scrollLeft、window.scrollTop。
4. 已删除document.all,改用document.getElementById。
5. 已删除document.fileSize、img.fileSize,使用XMLHttpRequest 可提取源。
6. 已删除script.onreadystatechange 和 script.readyState,改用script.onload。
7. 已删除document.selection,改用window.getSelection。
8. 已删除document.createStyleSheet,改用document.createElement("style")。
9. 已删除style.styleSheet,改用style.sheet。
10. 已删除window.createPopup,改用 div 或 iframe(zIndex 值很高)。
第四章:其他更新
第一节:IE7-IE8更新
1. 文件上载控件仅向服务器提交文件路径,而不提供完整路径。
MSDN原文:File upload control only submits the filepath, not the full path, to the server.
所属分类 |
版本更新 |
其他 |
IE7-IE8更新 |
http://blogs.msdn.com/b/ie/archive/2008/07/02/ie8-security-part-v-comprehensive-protection.aspx
第二节:IE8-IE9更新
MSDN原文:DefaultUser-Agent (UA) String Changed.
所属分类 |
版本更新 |
其他 |
IE8-IE9 |
IE9 使用缩短的UA使用者代理字符串, 不会再传送安装在电脑上的其他软件所新增的UA 字串,例如.NET Framework 。
IE9: Mozilla/5.0 (compatible; MSIE 9.0;Windows NT 6.1; Trident/5.0)
IE6升级到IE11兼容性问题和操作手册相关推荐
- IE8升级为IE11兼容性错误及解决方法总结
最近几个月一直在做IE升级的项目,在此,记录下项目中遇到的问题和解决方法. 首先项目原版本为IE8,要升级到的版本为IE11,由于IE在升级过程中不断的摒弃一些方法和更新一些方法,所以按照老版本IE编 ...
- html如何设置ie6兼容性视图,ie6浏览器设置兼容性视图的操作步骤
当前很多网友才刚刚使用ie6浏览器,还不熟悉设置兼容性视图的操作,那么ie6浏览器如何设置兼容性视图呢?接下来小编就来讲解ie6浏览器设置兼容性视图的操作步骤,相信一定可以帮助到你们. 打开浏览器后, ...
- xp电脑对ajax的兼容性,xp系统iE11兼容性问题的详细技巧
xp系统iE11兼容性问题的详细技巧?我们在操作xp系统电脑的时候,常常会遇到xp系统iE11兼容性问题的问题.那么出现xp系统iE11兼容性问题的问题该怎么解决呢?很多对电脑不太熟悉的小伙伴不知道x ...
- win7ie11调用java失败,不忘旧人,四招轻松解决Win7系统IE11兼容性问题
Win7之家( www.win7china.com):不忘旧人,四招轻松解决Win7系统IE11兼容性问题 IE11是IE最高版本的浏览器,也可能是微软最后一个版本的IE浏览器啦,在Win10系统中作 ...
- html在ie8下跳转新网址,ie8升级到ie11 单击“查看已安装更新”
IE升级不是版本越高越好,要适合当前系统的才是最好的. 您可以试试[百度电脑专家]一键修复升级. IE 升级到11, 想恢复到IE8 如何设置 首先打开IE11浏览器,然后点击上面的"工具& ...
- IE11兼容性问题——网站提示“打印插件只支持IE浏览器”
很多系统已经自动升级到IE11,会出现兼容性问题--网站提示"打印插件只支持IE浏览器" 解决方法: 浏览器"工具"--"兼容性视图设置", ...
- SharePoint2010升级到SharePoint2013操作手册
SharePoint2010升级到SharePoint2013操作手册 目 录 第一章 前言 3 第二章 升级前准备 3 第三章 升级流程图 5 第四章 升级过程 5 4.1 ...
- win7系统下IE9升级到IE11后开发者工具下的网络和探查器显示空白问题
前段时间为了测试将win7系统下IE9升级到IE11,之后F12打开开发者工具后网络和探查器显示一片空白,先是按网上资料上说的安装补丁:https://www.microsoft.com/en-us/ ...
- 橘子CPS联盟操作手册2021.09
橘子CPS联盟操作手册2021.09 目录 橘子CPS联盟操作手册2021.09 橘子CPS联盟是干嘛的 橘子CPS基本操作流程 PC端操作 1.注册 2.登陆 3.渠道管理 4.分享网站 5.分享网 ...
- 中关村-DIY电子书之Nook2 Root 完全操作手册
Nook2Root 完全操作手册 一.备份 1.准备工作 一张TF内存卡+读卡器(建议256MB以上).Win32DiskImager(用于把镜像文件写入内存卡里以制造引导盘).noogie.img( ...
最新文章
- Frida 基础操作2
- CG-CTF-Web-/x00
- 一些前端开发经典书籍推荐和下载链接分享
- python输入list_python学习(list增删改查、及常用方法)
- myeclipse----JVM运行内存溢出问题解决
- Android APK系列5-------修改APK中的内容
- 自动更改IP地址反爬虫封锁,支持多线程(转)
- maven 配置远程仓库服务器密码
- UnityShader[3]屏幕后处理学习笔记
- java网上书店模板_网上书店静态网站模板
- Makefile 编写规则
- [笔记分享] [Camera] 相机的flash led功能小结
- 30分钟了解DNS及搭建方法
- 使用Session+Cookie实现7天免登录
- 情人节之Python版冰墩墩
- vs2013+opencv3.4.3配置安装教程
- 高德地图如何同时显示多个InfoWindow信息窗体
- 最长无重复子数组算法-java实现
- 高德地图轨迹回放、点的弹跳效果、浏览器环境监测、设置地图的主题样式、GPS坐标转为高德坐标、地图加载提示、地图DOM事件、修改图层等API接口
- 赫夫曼树的创建(思路分析)