IE6IE9兼容性问题列表及解决办法.docx

上传人:b****2 文档编号:23547917 上传时间:2023-05-18 格式:DOCX 页数:48 大小:142.93KB
下载 相关 举报
IE6IE9兼容性问题列表及解决办法.docx_第1页
第1页 / 共48页
IE6IE9兼容性问题列表及解决办法.docx_第2页
第2页 / 共48页
IE6IE9兼容性问题列表及解决办法.docx_第3页
第3页 / 共48页
IE6IE9兼容性问题列表及解决办法.docx_第4页
第4页 / 共48页
IE6IE9兼容性问题列表及解决办法.docx_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

IE6IE9兼容性问题列表及解决办法.docx

《IE6IE9兼容性问题列表及解决办法.docx》由会员分享,可在线阅读,更多相关《IE6IE9兼容性问题列表及解决办法.docx(48页珍藏版)》请在冰豆网上搜索。

IE6IE9兼容性问题列表及解决办法.docx

IE6IE9兼容性问题列表及解决办法

IE6升级到IE9兼容性问题和操作手册

2012/4/6BobLiu

目录

概述2

第一章:

HTML3

第一节:

IE7-IE8更新3

1.如果缺少结束标记的P元素后跟TABLE、FORM、NOFRAMES或NOSCRIPT元素,会自动添加结束标记。

3

2.支持格式正确的有效标记,不再支持格式错误的HTML。

4

第二节:

IE8-IE9更新5

1.表对象模式现在更加符合其他浏览器。

5

2.文本布局使用自然度量而不是图形设备接口(GDI)度量。

7

第二章:

CSS9

第一节:

IE6-IE7更新9

1.方框模型溢出内容现与方框相交,不再让方框自动增长适应内容。

9

2.不再支持某些CSS筛选器(如*HTML、_underscore和/**/注释)。

11

3.已解决SELECT元素不能被div覆盖的问题。

14

第二节:

IE7-IE8更新14

1.不再支持CSS表达式,改为支持增强的CSS或DHTML逻辑。

14

2.currentStyle对象的Unset属性现在返回其初始值。

15

3.style对象的Unset属性值现在返回空字符串。

16

第三节:

IE8-IE9更新17

1.泰语和东亚语文本和字体大小的显示可能小于其他字样。

17

2.某些行为连接方法在XML模式中不可用。

18

第三章:

JavascriptandDOM19

第一节:

IE6-IE7更新19

1.不再允许用于绕过window.close提示的window.opener技巧。

19

2.从脚本创建的模式或无模式对话框看起来似乎稍微变大。

20

第二节:

IE7-IE8更新20

1.支持“class”语法,不再支持“className”属性语法。

20

2.属性集合不再包含InternetExplorer可识别的所有可能属性。

21

3.属性排序已更改,影响了属性集、innerHTML和outerHTML。

22

4.GetElementById区分大小写,且不再搜索名称属性。

23

第三节:

IE8-IE9更新24

1.createElement方法中不允许使用尖括号<>。

24

2.IE9标准模式不支持arguments.caller属性。

24

3.不再支持使用不带“.call”或“.bind”的函数指针调用方法。

25

4.不再连接内容属性和DOMexpando。

27

5.JavaScript属性列举在IE9中不同。

28

6.数学精确度在IE9中不同。

29

7.间接“eval”函数调用的行为方式不同。

30

8.IE9处理含大型索引的数组项目的方式不一样。

31

9.重叠元素会被复制。

32

10.DOM中会保留空格。

33

11.部分DOM事件已过时。

35

第四章:

其他更新36

第一节:

IE7-IE8更新36

1.文件上载控件仅向服务器提交文件路径,而不提供完整路径。

36

第二节:

IE8-IE9更新37

1.预设使用者代理(UA)字串已变更.37

 

概述

本文档内容涵盖:

IE6升级到IE9过程中Javascript,DOM,HTML,CSS等方面的变化和调整。

参考依据MSDN:

1.Appendix1:

InternetExplorer6toInternetExplorer9BrowserChanges

2.附录1:

从InternetExplorer6到InternetExplorer9的浏览器更改

3.InternetExplorer9CompatibilityCookbook

4.邊做邊學IE9相容性操作手冊

第一章:

HTML

第一节:

IE7-IE8更新

1.如果缺少结束标记的P元素后跟TABLE、FORM、NOFRAMES或NOSCRIPT元素,会自动添加结束标记。

MSDN原文:

UnclosedPelementsarenowautomaticallyclosedwhenfollowedbyTABLE,FORM,NOFRAMES,orNOSCRIPTelements.

所属分类

版本更新

HTML

IE7-IE8

具体描述及示例:

如果缺少结束标记的P元素后跟TABLE、FORM、NOFRAMES或NOSCRIPT元素,会自动添加结束标记,即:

TABLE、FORM、NOFRAMES或NOSCRIPT元素不能再嵌套在段落元素P中了。

考虑如下代码:

SimplePElementClosingExample

Thisisthefirstparagraph

30px">Thisisanotherparagraph.

--Pnotclosed-->

Thisisatablecell.

Thisisathirdparagraph.

在这个例子中,第二个P元素没有关闭。

在IE6,IE7下,Table元素显示为第二个p元素的子元素。

第二个p元素是窗口的左边界缩进30像素。

因为该表是一个P元素的子元素,它也从窗口的左边界缩进。

IE7下Html结构图如下:

然而,与IE8时,在默认模式下,TABLE元素对齐到左边缘。

因为IE8会自动关闭显示表元素之前闭合的P元素,TABLE元素的子元素。

IE8下Html结构图如下:

 

解决方案及正确写法:

请注意此特性,在代码中规避风险。

2.支持格式正确的有效标记,不再支持格式错误的HTML。

MSDN原文:

MalformedHTMLisnolongersupported,infavorofwell-formed,validmarkup.

所属分类

版本更新

HTML

IE7-IE8

具体描述及示例:

支持格式正确的有效标记,不再支持格式错误的HTML

MalformedHTMLisnolongersupported,infavorofwell-formed,validmarkup.

ParsererrorcorrectionformalformedHTMLhaschangedinIE8StandardsMode.PagesdependingonthewayIE7performserrorcorrectionmayencounterissuesasaresult.

  • 1.1

    • 1.1.1
    • —多了一个标记,willCloses1.1inIE8,butnotIE7-->

    • 1.1.2

在IE8下可以看到如下效果图:

解决方案及正确写法:

HTML标记写法要严谨。

Ensureyourmarkupiswell-formedandvalid.

  • 1.1

    • 1.1.1
    • ---->

    • 1.1.2

修改后,IE8下效果图如下:

第二节:

IE8-IE9更新

1.表对象模式现在更加符合其他浏览器。

MSDN原文:

TableObjectModelIsNowMoreConsistentwithOtherBrowsers.

所属分类

版本更新

HTML

IE8-IE9

具体描述及示例:

为了提高IE和其他浏览器之间的一致性,IE9的标准模式的表Table发生了以下变化:

•额外的THead和TFoot元素不会出现在table.tBodies集合中。

这里所指的是table.tBodies属性,并不是在tBody里面放thead或者tfoot。

如果有多余的thead或者tfoot,IE9模式下不会把它们计入在内,而在IE8模式下会把多余的thead或tfoot单独计入到一个tBody。

•Table的行集合有着不同的顺序。

无论他们在文档内的顺序是什么,首先是THead内容,其次是TBody内容,最后才是TFoot内容。

•调用rows统计将返回一个表内的所有层次的TR行数,包括直属TR行。

也就是指把table里面的所有TR对象都计入在rows列表里面,而不论它是在根节点还是thead/tfoot/tbody里面

•使用getElementsByTagName和HtmlElement.children方法不返回注释节点。

ToimproveconsistencybetweenWindowsInternetExplorerandotherbrowsers,theIE9Standardsmodeincludesthefollowingchangestothetableobjectmodel:

•ExtratheadandtfootelementsdonotappearinthetBodiescollection.

•Therowscollectionhasadifferentordering.First,itincludesanyrowsinthetheadelement,thenallremainingrowsthatarenotinthetfootelement,andthenanyrowsinthetfootelement,regardlessoftheirorderinthedocument.

•Acallforrowsreturnsallrowsatalldepthswithinthetable,includingdirectrowchildrenofthetable.

•ThegetElementsByTagNameandHtmlElement.childrenmethodsdonotreturncommentnodes.

如果不考虑这些变化在您的应用程序,应用程序可能会遇到次要的脚本错误,页面始终保持在加载中状态,或创建非预期内容等错误。

Ifyoudonotconsiderthesechangesinyourapplication,theapplicationmightencounterscripterrorsthatareminor,thatkeeppagesfromloading,orthatcreatecontentthatisnotintended.

考虑如下代码:

//www.w3.org/1999/xhtml">

TableTest

functionCheckTable(){

vartable=document.getElementById("mytable");

vartBodyResult="有"+table.tBodies.length+"个tBody\n\n";

varrows=table.rows;

varlength=rows.length;

varrowResult="";

for(vari=0;i

rowResult+="第"+(i+1)+"行:

"+rows[i].innerHTML+"\n";

}

alert(tBodyResult+rowResult);

}

Row1

Row2

Foot

Head1

Head2

ClickMe

点击ClickMe按钮,IE8将弹出提示,显示有三个tBody,实际上只有一个tbody,但是IE8将多余的一个thead和一个tfoot都各自单独计入一个tBody里了。

而IE9则不会有这个问题,只显示有一个tBody。

注释:

Table包含thead、tfoot以及tbody子元素,thead元素用于定义表格的表头,tfoot用于定义表格的表尾,tbody为表格中的主体内容。

thead元素应该与tbody和tfoot元素结合起来使用。

解决方案及正确写法:

注意此特性,规避风险。

相关资源:

2.文本布局使用自然度量而不是图形设备接口(GDI)度量。

MSDN原文:

TextLayoutUsesNaturalMetrics.

所属分类

版本更新

HTML

IE8-IE9

具体描述及示例:

对于IE9标准模式中的文字版面配置,IE9使用自然度量法,而非旧版IE浏览器使用的图形装置介面(GDI)度量法。

GDI度量法会将文字与像素界限对齐,而自然度量法则会使用内部像素的间距来呈现更准确且更容易阅读的文字。

IE的其他文件模式则继续使用GDI度量法。

针对旧版文件模式所写的页面版面配置在IE9中可能无法正确​​显示。

最常見的错误是未预期的文字換行,這可能会遮盖位于换行文字下方的元素。

当文字方块沒有多余的水平空间或是当文字方块的大小与頁面上的其他元素(例如图形)相连时,很可能会发生此错误。

FortextlayoutinIE9Standardsmode,WindowsInternetExplorer9usesnaturalmetricsinsteadofthegraphicaldeviceinterface(GDI)metricsthatotherMicrosoftWindowsbrowsersuse.GDImetricsaligntexttopixelboundaries,butnaturalmetricsuseinter-pixelspacingtocreatemoreaccuratelyrenderedandreadabletext.

OtherdocumentmodesforWindowsInternetExplorercontinuetouseGDImetrics.

PagelayoutsthatarewrittenforearlierdocumentmodesmightdisplayincorrectlyinInternetExplorer9.Themostcommonerrorisunexpectedtextwrapping,whichcancoverelementsthatarebelowthewrappedtext.Thiserrorismostlikelywhenatextboxdoesnotincludeextrahorizontalspaceorwhenthesizeofthetextboxisconnectedtoanotherelementonthepage,suchasagraphic.

解决方案及正确写法:

不要假设特定字型的大小在不同浏览器间或是在相同浏览器内都会依相容的方式呈现,因为使用者有可能会缩放浏览器的字体(例如,125%)。

利用下列设计准则,可确定您的网页显示文字版面配置的方式一致:

1.将Textbox的大小设定为特定的像素数。

2.在Textbox中留些余量空间,避免空间过紧。

3.使用非Static大小的Textbox。

4.在与其他页面元素相连接处包含额外空间。

5.如果您允许用户改变页面字体的大小,就要请您确认页面可以适应文字换行。

6.如果您发现文字换行的问题,请您调整页面,确保页面可以恰当地呈现文字。

避免对文字版面配置采用下列设计:

1.指望字型大小在不同浏览器间以相同的方式呈现。

2.使用Static大小的textbox。

关于Static大小的textbox,含义如下例:

100px"/>

这里就指定了textbox的size,非静态non-statically意思是说我们不要去指定size。

如果一定要指定,尽量用如上的px作为单位。

Donotassumethatthesizeofaparticularfontrendersidenticallyacrossbrowsersorwithinthesamebrowserbecauseuserscanchoosealargerfontdisplay(forexample,125%).

Do

Usethefollowingdesignguidelinestomakesurethatyourwebpagesdisplaytextlayoutconsistently:

•Setatextbox'ssizetoaspecificnumberofpixels.

•Includeextraspaceinyourtextboxesandavoidtightspaces.

•Usenon-staticallysizedtextboxes.

•Includeextraspaceinboundingareasthatdependonotherpageelements.

•Makesureyourpagecanaccommodatetextwrappingifyoupermituserstochangethepagefontsize.

•Testyourwebpagesinallcommonbrowsers.Ifyouseeatextwrappingissue,adjustthepagetomakesurethepageappropriatelyrendersthetext.

•Ifyoudesignedawebpageforapreviousmodeandyoudonotwanttoupdateittousenaturalmetrics,setthepagetodisplayinthatmodeevenwhenusersviewitinInternetExplorer9.

Donot

Avoidthefollowingdesignsfortextlayout:

•Dependonfontsizestorenderthesamewayacrossbrowsers.

•Usestatic-sizedtextboxes.

相关资源:

第二章:

CSS

第一节:

IE6-IE7更新

1.方框模型溢出内容现与方框相交,不再让方框自动增长适应内容。

MSDN原文:

Boxmodeloverflowcontentnowintersectsbox,nolongerauto-growsboxdivtofitcontent.

所属分类

版本更新

CSS

IE6-IE7

具体描述及示例:

在IE7中,为了适应CSS2.1boxmodel,微软修改了溢出的行为。

溢出是用来描述当一个块元素的内容溢出它的区域时,这些内容是否被剪切掉的一种方法。

默认情况下,内容不被剪切,也就是,它有可能呈现在区域以外。

过去的IE不支持这个行为。

内容总是需要适合区域的大小。

想象一个宽和高都是100px的区域,如果内容小于100px,那么没有问题。

如果内容超过了尺寸,我们需要自动增长区域大小来适合内容。

InIE7,wechangedthebehaviorofoverflowtoalignwiththeCSS2.1boxmodel.Overflowisdescribesasamethodtospecifywhethercontentofablock-levelelementisclippedwhenitoverflowsthebox.Thedefaultisvisible.Thisvalue(visible)indicatesthatcontentisnotclipped,i.e.itmayberenderedoutsidethebox.IEinthepastdidnotsupportthisbehavior.Contentalwayshadtofitwithinaboxdimensions.Imagineaboxwithwidth

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 预防医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1