有没有能兼容谷歌和FF,IE,js下的XML解析代码贴一个,谢谢,
下面这个好象不能兼容谷歌,大家看看是不是,怎么改改
function parseXML()
{
try //Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
}
catch(e)
{
try //Firefox, Mozilla, Opera, etc.
{
xmlDoc=document.implementation.createDocument("","",null);
}
catch(e)
{
alert(e.message);
return;
}
}
xmlDoc.async=false;
xmlDoc.load("note.xml");
}
下面这个好象不能兼容谷歌,大家看看是不是,怎么改改
function parseXML()
{
try //Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
}
catch(e)
{
try //Firefox, Mozilla, Opera, etc.
{
xmlDoc=document.implementation.createDocument("","",null);
}
catch(e)
{
alert(e.message);
return;
}
}
xmlDoc.async=false;
xmlDoc.load("note.xml");
}
if(window.XMLHttpRequest)
{
xml = new XMLHttpRequest();// 非IE浏览器请求
}
else if(window.ActiveXObject)
{
try{
xml = new ActiveXObject("Microsoft.XMLDOM"); //新IE请求对象
}
catch(e1){
try{
xml= new ActiveXObject("Msxml2.XMLDOM");// 老版IE 请求对象
}
catch(e2)
{
alert("无法识别的浏览器");
return false;
}
}
}
function showHint()
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("您的浏览器不支持AJAX!");
return;
}var url="myfile.xml";
url=url+"?q="+str;//??
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);//??
xmlHttp.send(null);//??
}
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}function stateChanged()
{
if (xmlHttp.readyState==4)
{
var OKDom=xmlHttp.responseXML;
}
}AJAX responseXML 不会用,请帮看下,之后通过OKDom.getElementsByTagName("name")等DOM之类的方法就可以操做XML吗?
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("您的浏览器不支持AJAX!");
return;
}var url="myfile.xml";
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);//这一行还要吗
xmlHttp.send(null);//这一行还要吗
}
function parseXML(){
var xml;
if(window.XMLHttpRequest)
{
xml = new XMLHttpRequest();// 非IE浏览器请求
}
else if(window.ActiveXObject)
{
try{
xml = new ActiveXObject("Microsoft.XMLDOM"); //新IE请求对象
}
catch(e1){
try{
xml= new ActiveXObject("Msxml2.XMLDOM");// 老版IE 请求对象
}
catch(e2)
{
alert("无法识别的浏览器");
return false;
}
}
}xmlDoc.async=false;
xmlDoc.load("notes.xml");}
写完整是这样吗?
是的~~不过你最好加个时间戳防止缓存,而不是加参数,xml不是动态页
var url="myfile.xml?_dc="+new Date().getTime();//加时间戳防止IE下的缓存
//url=url+"?q="+str;//??不需要这句
myfile.xml:<?xml version="1.0" encoding="gb2312"?>
<note>
<jr>
<u>abcde</u>
</jr>
</note>
function parseXML()//谷歌之外的浏览器执行这个可以处理DOM
{
try //Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
}
catch(e)
{
try //Firefox, Mozilla, Opera, etc.
{
xmlDoc=document.implementation.createDocument("","",null);
}
catch(e)
{
return qajax() //谷歌浏览器
//alert(e.message);
//return;
}
}
xmlDoc.async=false;
xmlDoc.load("myfile.xml");
var MSG=xmlDoc.getElementsByTagName("u")[0].childNodes[0].nodeValue;
alert(MSG);
}
function qajax()
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("您的浏览器不支持AJAX!");
return;
}var url="myfile.xml?_dc="+new Date().getTime();
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);//
xmlHttp.send(null);//
}
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}function stateChanged()
{
if (xmlHttp.readyState==4)
{
var xmlDoc=xmlHttp.responseXML;
var MSG=xmlDoc.getElementsByTagName("u")[0].childNodes[0].nodeValue;
alert(MSG);
}
}再次谢过
你的代码我在google浏览器下测试没问题啊。是不是你请求的xml文件路径不对啊??function stateChanged()
{
if (xmlHttp.readyState==4)
{
if(xmlHttp.status==200||xmlHttp.status==0){
var xmlDoc=xmlHttp.responseXML;
var MSG=xmlDoc.getElementsByTagName("u")[0].childNodes[0].nodeValue;
alert(MSG);
}
else alert('发生错误'+xmlHttp.status);
}
} 需要注意的一个问题是在IE下,使用ajax请求xml文件时,如果未通过http协议来访问,而是双击运行或者拖拽进浏览器来访问时,IE下生成不了XMLDOM。
关于AJAX的,
找了个看得懂的如下,但是没有responseXML属性,如何全部加载,怎么用到这里呢?
还有哪个jquery类似的函数可以用发出来个说明一下噻
$.ajax({
type: "POST",
url: "some.php",
data: "name=John&location=Boston",
success: function(msg){
alert( "Data Saved: " +eval(msg));
}
});
我这是只是在谷歌浏览器下就不行,没反应,我是把三个文件一起放在相同的目录下打开html文件运行的,
这是html文件,是不是html有问题:<head>
<script type="text/javascript" language="javascript" src="a.js">
</script>
<script type = "text/javascript" language="javascript">
window.onload = function() {
parseXML();}
</script>
</head>
<body>
</body>
</html>