日期:2014-05-16  浏览次数:20743 次

在html中用ajax+js调用xml里的文本内容请问为什么不行啊?
本帖最后由 showbo 于 2011-04-07 15:37:57 编辑
html里的ajax+js代码是这样的:
 if(window.ActiveXObject)
      var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
 else if(window.XMLHttpRequest)
      var xmlDoc = new XMLHttpRequest();
xmlDoc.load("figures.xml");
var entries = xmlDoc.documentElement.childNodes;
var name=entries.item(0);
alert(name.text);  //IE弹出提示框“姓名:XXX”,而FF就是不行


figures.xml代码:
<entries>
        <name>姓名:XXX</name>
</entries>


这段代码结果就是IE弹出提示框“姓名:XXX”,而FF就是不行,用Firebug一看,说是“xmlDoc.load is not a function”,难道FF不支持.load 函数吗?怎么才能操作figures.xml里的内容,并让火狐支持啊?

------解决方案--------------------
XMLHttpRequest莫有load方法,加载xml文件firefox可以使用document.implementation&&document.implementation

var loadXML = function(xmlFile){// 加载xml文档,返回XMLDOM
var xmlDoc;
if(window.ActiveXObject)
{
xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
xmlDoc.async = false;
xmlDoc.load(xmlFile);
}
else if (document.implementation&&document.implementation.createDocument)
{
xmlDoc = document.implementation.createDocument('', '', null);
xmlDoc.load(xmlFile);
}
else
{
return null;
}
return xmlDoc;
}

------解决方案--------------------
如果不是通过http来访问,IE要生成XMLDOM,可以使用acx的Microsoft.XMLDOM来加载,这个对象能生成XMLDOM。

但是IE的acx的microsoft.xmlhttp对象请求本地xml文件,这样无法生成XMLDOM

你的另外一个帖子里面我说得更清楚点,你去看看