xml解析兼容性问题的避免

摘要:
而且它没有与其他浏览器保持统一的标准。2.问题描述前端开发过程一般希望使用所有原生js,而不是使用封装的js库。查看代码函数loadXmlString(XmlString){try{//InternetExplorerxmlDoc=newActiveXObject(“Microsoft.XMLDOM”);xmlDoc.async=“false”;

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对象

免责声明:文章转载自《xml解析兼容性问题的避免》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ftp常用命令sql注入100种姿势过waf(一):waf 了解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java IO 关闭流的方式

Java IO 关闭流的方式 分类 练习:将分割文件中的流关闭方式改为finally形式 练习:文件合并中的流关闭方式改为try()形式 传送门:这里更详细 分类 在try中关闭 弊端是如果文件不存在或者读取的时候有问题而抛出异常,那么就不会执行流的关闭语句,存在资源占用隐患 在finally中关闭 这是标准的关闭流的方式 1、首先把引用声...

vika维格表 12 月版本更新:架构视图、视图锁闪亮登场,视图配置也可以不协同

过去的一年里,vika维格表坚持每个月努力更新、优化,只为给你带来更好的用户体验。在今年的最后一个月,我们丝毫没有松懈,新增多个实用功能,让你使用起来更丝滑。 让我们一起来看看vika维格表做了哪些努力来迎接 2022 吧~ 功能更新一览 1.「架构视图」上线:信息结构秒清晰,轻松拖拽易管理 2.「视图锁」上线:锁定重要视图,操作失误可避免 新增「视图...

服务器端Session和客户端Session(和Cookie区别)

Session其实分为客户端Session和服务器端Session。 当用户首次与Web服务器建立连接的时候,服务器会给用户分发一个 SessionID作为标识。SessionID是一个由24个字符组成的随机字符串。用户每次提交页面,浏览器都会把这个SessionID包含在 HTTP头中提交给Web服务器,这样Web服务器就能区分当前请求页面的是哪一个客户...

java数据库登陆页面

下面是一些总结但是部分来源于网络。 1.java语言 2. 面向对象分析设计 XML 语言 网页脚本语言 数据库 应用服务器 集成开发环境 .java语言:JSP、Servlet、JDBC、javaBean(Application)从这四部分开始创建web项目。 (一)java Database Connectivity(JBDC)技术 它是一种执行...

索引的删除和更新

【删除索引】 1 /** 2 * 测试删除索引 3 */ 4 @Test 5 public void testDelete(){ 6 IndexWriter writer = null; 7 8 try { 9...

GET和POST的区别及get和post关于请求的编解码的问题

GET和POST的本质区别是什么?        使用GET,form中的数据将编码到url中,而使用POST的form中的数据则在http协议的header中传输。在使用上,当且仅当请求幂等(字面意思是请求任意次返回同样的结果,本质是请求本身不会改变服务器数据和状态)时使用GET,当请求会改变服务器数据或状态时(更新数据,上传文件),应该使用POST。区...