function xml_text(xmlNode)
{
if (null==xmlNode) return "";
var rt;
if (window.ActiveXObject) // IE
{
rt = xmlNode.text;
}
else
{
// FireFox, Chrome, ...
rt = xmlNode.textContent;
}
if (null==rt) rt=xmlNode.nodeValue; // XML DOM
return rt;
}
// 添加方法 。为了兼容FireFox、Chrome 。
if (!window.ActiveXObject)
{
XMLDocument.prototype.selectSingleNode = Element.prototype.selectSingleNode = function (xpath)
{
var x = this.selectNodes(xpath)
if ( ! x || x.length1 ) return null ;
return x[ 0 ];
}
XMLDocument.prototype.selectNodes = Element.prototype.selectNodes = function (xpath)
{
var xpe = new XPathEvaluator();
var nsResolver = xpe.createNSResolver( this.ownerDocument == null?this.documentElement : this.ownerDocument.documentElement);
var result = xpe.evaluate(xpath, this , nsResolver, 0 , null );
var found = [];
var res;
while (res = result.iterateNext())
found.push(res);
return found;
}
}
Chrome浏览器加载XML文档
Chrome浏览器不支持load方法加载XML文档 。网上找了下,需要如下解决:
复制代码 代码如下:
function loadXMLDoc(xml_name)
{
var xmlDoc;
try
{
xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); // Support IE
}
catch(e)
{
try
{
// Support Firefox, Mozilla, Opera, etc
xmlDoc = document.implementation.createDocument("", "", null) ;// 创建一个空的 XML 文档对象 。
}
catch(e)
{
alert(e.message);
}
}
// 加载XML文档
try
{
xmlDoc.async = false; // 关闭异步加载
xmlDoc.load(xml_name);
}
catch(e)
{
// alert(e.message) 如果浏览器是Chrome,则会catch这个异常:Object # (a Document) has no method "load",所以,以下实现支持chrome加载XML文档(只是粗略的写下)
var xhr = new XMLHttpRequest();
xhr.open("GET", xml_name, false);
xhr.send(null);
xmlDoc = xhr.responseXML.documentElement;
}
return xmlDoc;
}
BTW,各浏览器加载XML字符串也不同 。
IE使用 loadXML() 方法来解析 XML 字符串:
复制代码 代码如下:xmlDoc.loadXML(xml_str);
FireFox等使用DOMParser 对象解析XML字符串:
复制代码 代码如下:
var parseXml = new DOMParser();
var doc = parseXml.parseFromString(xml_str,"text/xml");
您可能感兴趣的文章:FireFox与IE 下js兼容触发click事件的代码JS获得鼠标位置(兼容多浏览器ie,firefox)我们修正版JS 获取span标签中的值的代码 支持ie与firefoxIE,firefox(火狐)浏览器无提示关闭窗口js实现代码小结js Firefox 加入收藏夹功能代码 兼容Firefox 和 IEJS遮罩层效果 兼容ie firefox jQuery遮罩层兼容IE与firefox火狐的回车事件(js与jquery)js操作textarea方法集合封装(兼容IE,firefox)JS事件Event元素(兼容IE,Firefox,Chorme)兼容IE和Firefox火狐的上下、左右循环无间断滚动JS代码利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)js在IE与firefox的差异集锦
推荐阅读
- 喜欢写作的女生做什么工作好呢
- 干鱿鱼怎样泡发
- 旧的咸菜怎么样做好吃
- 洗衣机进水就排水
- Win 10 Edge浏览器可兼容IE网站,为照顾企业用户
- linear-gradient 兼容IE与firefox的css 线性渐变
- 糖炒焦了的苦味怎么办
- 解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
- win10远程怎么设置
- 阿尔卡特OT735常用技巧