跨浏览器开发经验总结(六) —— XML文档处理 & XMLHttpRequest对象

XML文档处理

加载xml文件

IE:

xmlDoc=new ActiveXObject("Microsoft.XMLDOM");

xmlDoc.async="false";

xmlDoc.load("books.xml");

其他浏览器:

xmlDoc=document.implementation.createDocument("","",null);

xmlDoc.async="false";

xmlDoc.load("books.xml");

 

加载xml字符串

IE:

xmlDoc=new ActiveXObject("Microsoft.XMLDOM");

xmlDoc.async="false";

xmlDoc.loadXML(txt);

其他浏览器:

parser=new DOMParser();

xmlDoc=parser.parseFromString(txt,"text/xml");

selectNodes()、selectSingleNode()方法

这两个方法是IE才有的,如果考虑跨浏览器,请尽量使用标准DOM操纵方式替代,或者在其他浏览器中先实现以上方法再使用。

xml属性

IE可以用obj.xml来显示obj的节点内容,但是这个属性是其他浏览器没有,所以要用(new XMLSerializer()).serializeToString(obj)方法来显示节点内容。

 

XMLHttpRequest对象

获得IE和其他浏览器中的XMLHttpRequest对象

获得IE和其他浏览器中的XMLHttpRequest对象

function getXMLHTTPRequest()

{

    var myRequest = null;

    if(window.XMLHttpRequest)   // IE以外的浏览器

    {        

        myRequest = new XMLHttpRequest(); 

    }

    else if(typeof ActiveXObject != "undefined")  // IE

    {              

        myRequest = new ActiveXObject("Microsoft.XMLHTTP");

    }          

    return myRequest;          

}

然后我们就可以使用上面的方法来进行请求操作了。

    var myRequest = getXMLHTTPRequest();

    xmlhttp.onreadystatechange=stateChange;

    xmlhttp.open("GET",url,true);

    xmlhttp.send(null);

 

open方法参数说明

xmlhttp.open("GET",url,true)里第一个参数表示请求的方式,“POST”或者“GET”;第二个参数是发送请求的地址;第三个参数是表示是否用异步方式进行请求。如果采用异步方式请求,那么浏览器会在send请求后等待请求地址的响应同时,继续执行send之后的语句,得到响应后执行xmlhttp.onreadystatechange设置的名为stateChange的回调方法,所以要把得到响应后的后继操作写在这个回调方法里。

需要注意的是如果采用同步方式发送请求,浏览器会等请求响应后才执行send之后的语句,所以最好是把响应后的操作直接写在send语句之后,而不是像异步方式请求那样写在xmlhttp.onreadystatechange设置的回调方法中,因为各浏览器在同步请求后是否还执行这个回调方法上还是有些不一致的地方:比如firefox3.0在发送同步请求得到响应后就不触发onreadystatechange事件,自然就不会执行这个回调方法了。

send方法参数的默认值设置

不同浏览器的XMLHttpRequest虽然接口一样,但在不同浏览器中调用XMLHttpRequest的方法和属性却不尽相同。如send方法,在IE中可以不传参数,如myXMLHttpRequest.send();仍然可以正常工作,而在firefox中,必须为send方法传一个参数,也就是说,在firefox中send方法参数没有默认值,必须为其赋值,哪怕是null也可以。

转载于:https://www.cnblogs.com/joycel/archive/2010/05/21/1740575.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值