最近在学习jQuery,使用ajax方式调用C#编写的WebService。当WebService返回类型为xml字符串时,IE6浏览器不能正确解析xml字符串。进一步分析发现IE6下,不能正确将xml字符串转成JQuery对象,Opera或Firefox可以。下面的脚本可验证:
IE6下,不能正确将xml字符串转成JQuery对象(如果谁有解决办法可以留言给我,多谢!) 。所以我只能换个方式,通过XML的DOM树来取数。
网上搜了一些解决办法,自己做例子验证。发现网上很多文章中处理xml文件 的方式,却没能生效(针对Opera或Firefox浏览器)。
多数方法是用var xmlDoc = document.implementation.createDocument("", "", null);创建一个XMLDOM,再同过xmlDoc.load(xmlFile)加载xml文件,然后再通过getElementsByTagName()方法来取数。
但Opera或Firefox浏览器下,xmlDoc却是空的!!!
我在网上找啊找,困得我都想放弃去睡觉了,最后终于在一篇网文中发现原因:Opera、Firefox、IE浏览器对于XMLDoc的支持有差别,见后面的参考1。
Opera、Firefox浏览器下处理XML文件的JS脚本:
最后,附上各种浏览器下,处理xml字符串及xml文件的JS脚本:
参考:
1、SD9008: 已经被废弃的 DocumentLS 接口目前仅在 Firefox 和 Opera 下被部分支持 -----如果发现各个浏览器下的某种诡异差别,可到这里寻找解决办法。
2、解決在 IE 下無法將 HTML/XML 轉成 jQuery 物件的問題
3、浏览器中的XML