IE模型和W3C DOM模型的不同之处(后续将不断补充)

前言:IE模型和W3C DOM模型有许多不同之处,在这里,我将自己在学习过程中遇到的不同之处罗列出来,以供日后参考。

一.事件对象

在Internet Explorer 中,事件对象是window对象的属性(window.event)。在该模型中,window.event属性包含最后一个已经发生的事件:

在W3C DOM 模型中,事件作为参数传递给事件处理函数:

若要使用与两者都兼容的方法访问事件,可以使用类似下面的函数:

二.XMLHttpRequest 对象

 §创建XMLHttpRequest对象:

在IE7、Firefox、 safari和Opera中,创建对象的语法如下:

var xmlRequest = new XMLHttpRequest();

在IE5 和IE6中,代码如下:

var xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");

通用代码:

 注意:因为JavaScript 是区分大小写的,所以必须确保大小写正确。

 

§使用数据部分:

在从responseXML 属性成功地返回数据后,可以把它当做DOM对象从中重新取回数据。例如,假设有以下代码:

可以使用以下代码返回XML 文档中的<cart>包含的元素:

还可以使用以下代码导航到book中的第一个元素:

var title = book[0].firstChild;

从XML文档中返回文本内容的方式来看,两大浏览器IE 和Mozilla 之间存在显著的不同。

IE 将使用text 属性返回相应内容,如下所示:

var title = book[0].firstChild.text;//title will equal "Beginning ASP.NET with c#"

Mozilla 将使用textContent 属性返回相应内容

var title = book[1].firstChild.textContent;//title will equal "Beginning ASP.NET with c#"

此外,还会发现IE中的book[0] 用来引用第一个节点而Firefox 则使用book[1]。Firefox中的book[0] 会包含一个带有换行字符的文本节点,因为Firefox 不会跳过空白字符,它将它们视为单独的节点,而IE 则不会这样。

以上文章摘选自《Ajax 入门经典》(Beginning Ajax)Chris Ullman, Lucinda Dykes 著   徐璐 译   清华大学出版社

发表评论