xml解析兼容性问题的避免

1、引言

js在处理xml过程中,由于浏览器兼容性问题,要做许多的兼容处理,随着浏览器是升级,大多数浏览器都已经默认保持统一标准,以便于我们日常的开发,然而有了微软的IE这个奇葩的存在,形成了大多数前端开发者的噩梦,最近做的一个项目就踩中一个大坑,IE11和以往的IE6、7、8等既然都不一样,并且没和其他浏览器保持统一标准

2、问题描述

前端开发过程中一般希望能全部使用原生js就避免使用封装好的js库,所以在解析xml字符串的过程中一开始选择使用原始js来实现,从w3cSchool找到一段代码,看了下好像实现了功能并且保证了兼容性的代码


function loadXmlString(XmlString) {
    try { // Internet Explorer
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async = "false";
        xmlDoc.loadXML(XmlString);
    } catch (e) {
        try { // Firefox, Mozilla, Opera, etc
            //          xmlDoc=document.implementation.createDocument("","",null);
            parser = new DOMParser();
            xmlDoc = parser.parseFromString(XmlString, "text/xml");
        } catch (e) {
            alert(e.message);
        }
    }
    try {
        return (xmlDoc);
    } catch (e) {
        alert(e.message);
    }
    return (null);
}

在谷歌火狐以及IE8的测试下正常运行能解析返回一个正常的dom对象,然而提交到测试那边发现此代码在IE11下既然不能正常运行,谷歌搜索了一下IE11不再支持ActiveXObject(“Microsoft.XMLDOM”)这个功能来实现xml字符串的解析返回dom对象,所以为了保证兼容性,选择引入jquery来实现这块功能,避免因为兼容性问题导致功能的不完善

jQuery.parseXML(data)
\\jquery提供此方法可以解析xml字符并返回一个dom对象
\\注意不是放回jq对象,但是可以和正常的dom对象一样通过转化为jq对象
posted @ 2016-11-15 11:26  ~hello ~world  阅读(960)  评论(0编辑  收藏  举报