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");