跨浏览器的兼容

跨浏览器的兼容

ID:38313406

大小:717.81 KB

页数:15页

时间:2019-06-09

跨浏览器的兼容_第1页
跨浏览器的兼容_第2页
跨浏览器的兼容_第3页
跨浏览器的兼容_第4页
跨浏览器的兼容_第5页
资源描述:

《跨浏览器的兼容》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第13章跨浏览器的兼容性问题在开发Ajax应用程序时,开发者往往遇到程序代码在不同浏览器下不兼容的问题。在某个浏览器中能正常运行的程序,到了另外一个浏览器下就完全无法工作。这是因为不同浏览器的内核不同,而在JavaScript解析上存在差异。当前主流的浏览器主要基于两种内核:IE和Gecko。IE内核的浏览器主要包括IE系列的各版本浏览器以及像腾讯TT、傲游这类以IE内核为基础二次开发的浏览器。Gecko内核的浏览器主要包括Firefox、Netscape等浏览器。本章将以IE和Firefox为例,来对浏览

2、器的兼容性问题做一个汇编总结。13.1使用getElementById代替idName在IE中,获得一个元素对象的引用,可以直接使用该元素对象的id,以下代码在IE中可以正常运行。13.2表单元素的引用问题在IE下,通过表单获得某个表单元素的引用,可以使用form.item(“itemName”),如下代码在IE中可以正常运行。13.3访问集合对象成员的问题在IE中,对集合对象的成员的访问,可以使用圆括号加索引的方式。13.4读取自定义属性的问题在一些应用场合,为了程序处理的需要,会给HTML元素添加一些自

3、定义属性,如下所示。13.5常量的定义问题Firefox支持使用const定义常量,但是IE不支持,如下所示。13.6input元素的type属性读写问题在Firefox下,input元素的type属性是可读写的,这个特性使得可以动态改变input元素的形态,如下所示。13.7模态窗口的问题在IE下,可以使用showModalDialog来创建模态窗口。原窗口可以给模态窗口传递参数,并接

4、受模态窗口返回的值。模态窗口在关闭前不能失去焦点。13.8frame的操作问题在IE中,通过window.frameId或者window.frameName都可以获得对frame页面window对象的引用,如下所示。13.9innerText的问题在IE下可以使用innerText属性来读取或设置一个元素内的文本值,如下所示。13.10对父元素的引用问题在IE中对父元素的引用可以使用parentElement和parentNode,但是在Firefox中只能使用parentNode,如下所示。13.11ge

5、tElementsByName的问题在IE中,如果给div添加name属性,然后通过getElementsByName来查找这些div,则getElementsByName不能正常工作,如下所示。13.12outerText的问题在IE下,HTML元素有outerText属性,其返回值与innerText属性一样,但是如果改写元素的outerText属性,则元素本身会被文本所替换。也就是说,当改变一个元素的outerText属性时,实际上是用一个文本节点替换了元素,如下所示。13.13outerHTML的问

6、题在IE下,读取元素的outerHTML属性,可以得到包含元素及其子孙元素在内的所有HTML表示。如果修改元素的outerHTML属性,则会使用一段新的HTML代码替换原有的元素。替换后,原有的元素会从页面中被删除掉,如下所示。13.14小结本章对Ajax开发中可能遇到的浏览器兼容性问题进行了总结和分析,并辅以实例说明了解决办法。这些兼容性的问题包括:idName的使用、表单元素的引用、集合对象成员的访问、自定义属性的读取、常量的定义、input元素type属性的读写问题、模态窗口的使用、frame元素的操

7、作、父元素的引用、getElementsByName的问题以及innerText、outerText和outerHTML在Firefox下的实现。除此之外,本书前面的章节也介绍了一些兼容性处理的方法,例如事件对象的兼容性处理,XMLDOM的兼容性处理等等,在本章中就不再重复了。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。