JavaScript 【跨浏览器处理XML,做个兼容】
//兼容方法
function getXMLDOM(xmlStr) {
var xmlDom = null;
if (typeof window.DOMParser != "undefined") {
xmlDom = (new DOMParser).parseFromString(xmlStr, "text/xml");
var errors = xmlDom.getElementsByTagName("parsererror");
if (errors.length > 0) {
throw new Error("DOM2模型错误信息" + errors[0].textContent);
}
}
else if (typeof window.ActiveXObject != "undefined") {
var version = ['MSXML2.DOMDocument.6.0', 'MSXML2.DOMDocument.3.0', 'MSXML2.DOMDocument'];
for (var i = 0; i < version.length; i++) {
try {
var xmlDom = new ActiveXObject(version[i]);
}
catch (e) {
//跳过
}
}
//放在循环外面才能报错
xmlDom.loadXML(xmlStr); //载入字符串
//xml序列报错
if (xmlDom.parseError != 0) {
throw new Error("错误信息" + xmlDom.parseError.reason);
return xmlDom;
}
}
else { throw new Error('您的系统或浏览器不支持XML DOM对象!'); }
return xmlDom;
}
//序列化
function serializerXML(xmlDom) {
var xml = "";
if (typeof window.XMLSerializer != "undefined") {
xml = (new XMLSerializer()).serializeToString(xmlDom);
}
else if (typeof xmlDom.xml != "undefined") {
xml = xmlDom.xml;
}
return xml;
}
var xmlStr = "<root>\n<user>CPU123</user>\n</root>";xml加载字符串
var xmlDom = getXMLDOM(xmlStr);//调用兼容方法得到一个xml DOM对象
alert(serializerXML(xmlDom));//调用XML序列化
为了跨越所有浏览器兼容,外面放弃了从外部加载XML文件,而使用了字符
串XML加载和序列化
JavaScript 【跨浏览器处理XML,做个兼容】的更多相关文章
- javascript跨浏览器操作xml
//跨浏览器获取xmlDom function getXMLDOM(xmlStr) { var xmlDom = null; if (typeof window.DOMParser != 'undef ...
- JavaScript 【跨浏览器XPath,做个兼容】
IE的Xpath 获取单一节点 var xmlDom = getXMLDOM(xmlStr);//调用之前写好的方法获得XMLDOM对象 // var node = xmlDom.selectSing ...
- 跨浏览器读取XML
这里跨浏览器,但是只能读取字符串XML文档,可以通过Ajax方式load一个XML文档,将文件XML转变为字符串 // 跨浏览器返回XML DOM对象 function getXMLDOM(xmlSt ...
- JavaScript跨浏览器绑定事件函数的优化
JavaScript作为一门基于事件驱动的语言(特别是用在DOM操作的时候),我们常常需要为DOM绑定各种各样的事件.然而,由于低版本的IE的不给力,在绑定事件和移除事件监听上都与众不同,我们常常需要 ...
- JavaScript跨浏览器处理事件以及相关对象
主流的浏览器和IE浏览器在处理事件和事件对象上是有所区别的,我们一般会通过EventUtil进行封装,这样,就可以正常的跨浏览器处理事件了,本文的主要内容总结自<JavaScript高级程序设计 ...
- javascript跨浏览器事件对象类库
一.前言 学习了javascript事件后,个人总结归纳了跨浏览器事件对象类库,方便以后使用,现分享给大家. 二.事件对象封装 将对浏览器事件对象的操作封装成eventObject.js方便调用 // ...
- Javascript跨浏览器的事件对象
一.跨浏览器的事件对象 var EventUtil = { ///添加事件 addHandler: function (element, type, handler) { if (element.ad ...
- 封装常用的Javascript跨浏览器方法
var EventUntil={ // 跨浏览器的添加事件方法 addHandler:function(element,type,handler){ if(element.addEventListen ...
- javascript 跨浏览器事件处理
<div id="myDiv" style="width:100px; height:100px; border:1px solid #f00;"> ...
随机推荐
- 银行综合储蓄业务系统,水平为学了一年C语言
银行综合储蓄业务系统 #include <stdio.h> #include<string.h> int acccunt = 0; char name[10],pw[10]; ...
- 用JSmooth制作java jar文件的可运行exe文件教程【图文】
这是我之前在个人博客3yj上面写的一篇文章,如今转载过来,原文地址 (这不是广告哦) 几年前,刚接触java的是,就想用一些方法把自己的劳动果实保护起来,曾经也用过非常多这种工具,有一个特别好用,今天 ...
- C# 零散笔记
关于控件 控件实质就是一个类 属性中的Name就是它实例后的变量名 属性中的其他东西就是类中的变量或函数 例如: 可以直接通过Name.BackColor=Color.Yellow; 来直接操作控件的 ...
- Xshell同时向多个会话发送指令的方法
我们平时使用XSHELL.SecureCRT.putty等ssh连接工具连接到远程主机,每次输入指令都是在单一会话窗口,如果有很多台会话,需要同时输入同样的指令,我们就不用一一输入,浪费时间和精力.可 ...
- 不同SQL Server数据库之间的跨数据库查询
--不同SQL Server数据库之间的跨数据库查询 EXEC sp_addlinkedserver @server=N'OldDatabase', --自己定义别名 @srvproduct=N'', ...
- 对Textbox的值转换为带千位符和小数的Decimal字符串
以下Function可以用于textbox的KeyUp事件: 2014-06-06 发现旧版IE不支持selectionStart还有字符串的"[]"索引获取值, 已经修复这个bu ...
- Model注解的后台原理
Asp.net MVC的验证特性是由模型绑定器.模型元数据.模型验证器和模型状态组成的协调系统的一部分. 1.验证和模型绑定 默认情况下,Asp.net MVC框架在模型绑定石执行验证逻辑,在操作方法 ...
- ASP.NET中分布式事务的使用
之前发表了一篇事务的存储过程,最近在做项目的时候遇到分布式事务,所有总结一下,跟大家分享和交流一下经验.首先说明为什么要分布式事务呢?先说说我在项目的哪里遇到分布式事务吧,我是在做网站后台开发的时候, ...
- iOS中json解析出现的null,nil,NSNumber的问题
在iOS开发过程中经常需要与服务器进行数据通讯,Json就是一种常用的高效简洁的数据格式. 问题现象 但是几个项目下来一直遇到一个坑爹的问题,程序在获取某些数据之后莫名崩溃.其实很早就发现了原因:由于 ...
- tomcat日志分析详解
在server.xml里的<host>标签下加上 <Valve className="org.apache.catalina.valves.AccessLogValve&q ...