一个常用的AJAX函数LoadXML()

来源:互联网 发布:人工智能行业图谱 编辑:程序博客网 时间:2024/05/21 12:50

一个常用的AJAX函数LoadXML()
loadxml.js文件代码

function GetXmlHttp(url) {
 var xmlhttp = false;
 if(window.XMLHttpRequest) { //Mozilla 浏览器
  xmlhttp = new XMLHttpRequest();
  if (xmlhttp.overrideMimeType) {//设置MiME 类别
   xmlhttp.overrideMimeType("text/xml");
  }
 }
 else if (window.ActiveXObject) { // IE 浏览器
  try {
   xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  }
  catch (e) {
   try {
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
   }
   catch (e) {}
  }
 }
 if (!xmlhttp) { // 异常,创建对象实例失败
  window.alert("不能创建XMLHttpRequest 对象实例.");
  return false;
 }
 return xmlhttp;
}
function loadXML(panel,xmlPath,xslPath){
 /*var xmlhttp=GetXmlHttp();
 xmlhttp.open("POST",xmlPath,true);
 xmlhttp.onreadystatechange=function() {
  if (xmlhttp.readyState==4) {
   writeContent(panel,xmlhttp,xslPath);
  }
 }
 xmlhttp.send(null);*/
 panel.innerText="Loading...";
 var xml = new ActiveXObject("MSXML.DOMDocument");
 xml.onreadystatechange=function() {
  if (xml.readyState==4) {
   writeContent(panel,xml,xslPath);
  }
 }
 xml.async = true;
 if (xmlPath.indexOf("http://")==0)
 {
  xmlPath="/xml.aspx?url="+xmlPath;
  //location.href="http://"+location.host+xmlPath;
 }
 xml.load(xmlPath);
}
function writeContent(panel,xml,xslPath){
 var xsl = new ActiveXObject("MSXML.DOMDocument");
 xsl.onreadystatechange=function() {
  if (xsl.readyState==4) {
   panel.innerHTML=xml.transformNode(xsl);
  }
 }
 xsl.async = true;
 xsl.load(xslPath);
}

HTML页面代码

<script language="javascript" src="/oblog3/loadxml.js"></script>
<script language="JavaScript" type="text/javascript">
function LoadData(){
 if (document.readyState!="complete"){
  setTimeout("LoadData()",300);
  return;
 }
 else{
  loadXML(test,"loadXML.xml","loadXML.xsl");
 }
}
LoadData();
</script>
<span id="test"></span>

xml和xsl代码自定
 

原创粉丝点击