dwr convertXml的bug

本文探讨了dwr engine.js中的convertXml方法,分析了该方法在不同浏览器环境下的实现方式,并讨论了IE6中不支持XMLSerializer的问题及解决思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

读dwr的engine.js源码,看到convertXml这个方法:

/** * Marshall an object * @private * @see dwr.engine.serialize.convert() for parameter details */ convertXml:function(batch, referto, data, name, depth) { var output; if (window.XMLSerializer) output = new XMLSerializer().serializeToString(data); else if (data.toXml) output = data.toXml; else output = data.innerHTML; return "xml:" + encodeURIComponent(output); }

里面用了XMLSerializer,这个在IE6下面不支持。

toXml,ff和ie6下面都undefined,估计是自定义转化xml的方法名吧。

最后一个data.innerHTML,是针对html dom对象的。

如果过传的是对象是构造的xml对象,如下构造的:

function stringToXML(xmlData){ if (window.ActiveXObject) { //for IE xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async = "false"; xmlDoc.loadXML(xmlData); return xmlDoc; } else if (document.implementation && document.implementation.createDocument) { //for Mozila parser = new DOMParser(); xmlDoc = parser.parseFromString(xmlData, "text/xml"); return xmlDoc; } }

这样传进去只有在ff下测试成功,执行的是这个方法XMLSerializer,IE6下报错error,

在网上查了下,上面说的ie9支持XMLSerializer这个。

呵呵。。。小弟看源码和测试的结果,不知道有错没,如果有请看到的大牛们指出来,谢谢?

【ps:原创,如需转载请标明原文出处,谢谢!】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值