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;"> ...
随机推荐
- 【Heritrix基础教程之3】Heritrix的基本架构
Heritrix可分为四大模块: 1.控制器CrawlController 2.待处理的uri列表 Frontier 3.线程池 ToeThread 4.各个步骤的处理器 (1)Pre-fetch ...
- Html、CSS、JavaScript 实时效果在线编辑器 - 学习的好工具,算不算?!
关于 二维码 与 NFC 之间的出身贫贱说 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 ...
- java学习笔记day04
1.static关键字 特点:1)随着类的加载而加载 2)优先于对象存在 3)被所有对象所共享 4)可以直接被类名调用(类名.静态成员) 注意:静态方法只能 ...
- JS给元素循环添加事件的问题
<ul> <li>男</li> <li>女</li> <li>老</li> <li>少</li&g ...
- wpf中,一个简单的自定义treeview
首先创建一个自定义控件,在里面定义好treeview的样式,将本来的三角形的图标变为加号的图标,并且添加节点之间的连线. <UserControl x:Class="TreeViewE ...
- ASP.NET属性之AssociatedControlID
AssociatedControlID 是用在Asp.Net 中的 Label 控件上.给label控件关联一个ASP.NET的控件,在点击 这个 LABEL的时候,所关联的ASP.NET控件会获得焦 ...
- (原+转)C++中的const修饰符
const int a; int const a; 这两个写法是等同的,表示a是一个int常量. 简记:const后面是什么就限定什么(因为C++标准规定,const关键字放在类型或变量名之前等价的) ...
- synchronized 方式实现监控器中数据成员的同步
要对监控器中的数据成员进行访问,在考虑到多线程的情况下必须使用同步代码块来改变监控器中数据成员的值: synchronized (mAdapterLocking) { if (pEvery == 0) ...
- 给WebApp加一个“壳”,实现Andriod系统添加到桌面
IOS系统的Safari浏览器有一个“添加到桌面”的功能,能在手机桌面上为你的Webapp添加一个快捷方式,其外观和Native App看起来一样. 这个功能对Webapp来说太有用了,它能让用户像“ ...
- NPOI导出多张图片到Excel
常用NPOI导出数据到excel,但没有试过如何导出图片.NPOI最大的特点就是不依赖于Excel组件,服务端不需要安装Excel.在单元格中插入图片主要是用HSSFClientAnchor对象.他有 ...