JavaScript 【跨浏览器处理XML,做个兼容】
2013-11-17 10:40
323 查看
//兼容方法
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加载和序列化
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事件处理与浏览器兼容问题(上)
- javascript浏览器兼容教程之事件处理
- [JavaScript] 兼容IE、FireFox、Chrome等浏览器的xml处理函数(xml同步/异步加载、xsl转换、selectSingleNode、selectNodes)
- javascript浏览器兼容教程之事件处理
- 多浏览器兼容的Javascript读取XML节点方法
- javascript读取XML(兼容所有浏览器)
- 常见的原生javascript事件处理与浏览器兼容问题(下)
- [JavaScript] 兼容IE、FireFox、Chrome等浏览器的xml处理函数(xml同步/异步加载、xsl转换、selectSingleNode、selectNodes)
- [JavaScript] 兼容IE、FireFox、Chrome等浏览器的xml处理函数(xml同步/异步加载、xsl转换、selectSingleNode、selectNodes)
- 具有跨浏览器兼容的事件处理javascript脚本
- 【译】用jQuery 处理XML--浏览器中的XML与JavaScript
- 跨浏览器处理xml 兼容IE
- javascript读取xml的解法,兼容多浏览器
- 最近用到的浏览器兼容javascript总结
- Javascript和CSS浏览器兼容总结
- 创建具有错误处理能力及多种浏览器通用的 XMLHttpRequest对象
- JavaScript初学者建议:不要去管浏览器兼容
- javascript 兼容所有浏览器的DOM扩展功能
- 12种Javascript解决常见浏览器兼容问题的方法
- 兼容Firefox的Javascript XSLT 处理XML文件