以前写的一段Ajax代码:
//GXml的静态方法value,返回指定XML节点的值
function value(a)
{
    if(!a)
    {
        return""
    }
    var b="";
    if(a.nodeType==3||a.nodeType==4||a.nodeType==2)
    {
        b+=a.nodeValue
    }
    else if(a.nodeType==1||a.nodeType==9||a.nodeType==11)
    {
        for(var c=0;c<a.childNodes.length;++c)
        {
            b+=arguments.callee(a.childNodes[c])
        }
    }
    return b
}
//GXmlHttp的静态函数create,返回一个xmlhttp对象
function create()
{
    try
    {
        if(typeof ActiveXObject!="undefined")
        {
            return new ActiveXObject("Microsoft.XMLHTTP")
        }
        else if(window.XMLHttpRequest)
        {
            return new XMLHttpRequest()
        }
    }
    catch(a)
    {
    }
    return null
}
//下载指定的xml文档
function GDownloadUrl(url,onloaded,onloading,onerror,usePost,contentType)
{
    var xmlhttp=create();//获取一个xmlhttp对象
    if(!xmlhttp)return false;
    xmlhttp.onreadystatechange=function()
    {
        if(xmlhttp.readyState==4)
        {
            onloaded(xmlhttp.responseText,xmlhttp.status);
            xmlhttp.onreadystatechange=nullFunction
        }
        else if(xmlhttp.readyState==1 || xmlhttp.readyState==2 || xmlhttp.readyState==3)
        {
            onloading();
        }
    };
    if(usePost)
    {
        xmlhttp.open("POST",url,true);
        var f=contentType;
        if(!f)
        {
            f="application/x-www-form-urlencoded"
        }
        xmlhttp.setRequestHeader("Content-Type",f);
        xmlhttp.send(usePost);
    }
    else
    {
        xmlhttp.open("GET",url,true);
        xmlhttp.send(null)
    }
    return true
}
function nullFunction()
{
};
//GXml的静态方法parse,参数a是xml字符串
function parse(a)
{
    if(typeof ActiveXObject!="undefined"&&typeof GetObject!="undefined")//IE模式
    {
        var b=new ActiveXObject("Microsoft.XMLDOM");
        b.loadXML(a);
        return b
    }
    if(typeof DOMParser!="undefined")//Firefox模式
    {
        return(new DOMParser()).parseFromString(a,"text/xml")
    }
    return CreateElement("div",null)
}
//进行XSLT转化的类,构造函数是一个XSLT的xmlNode
function GXslt(a)
{
    this.xsltNode=a
}
GXslt.prototype.transformToHtml=function(a,b)
{
    if(a.transformNode)//浏览器是否支持XSLT转化(IE模式)
    {
        setInnerHTML(b,a.transformNode(this.xsltNode));
        return true
    }
    else if(XSLTProcessor&&XSLTProcessor.prototype.jf)//(FireFox模式的XSLT转化,这一段我也不是太懂)
    {
        var c=new XSLTProcessor();
        c.jf(this.mh);//jf究竟是一个什么方法呢?浏览器集成的,还是Google的AJAX里面提供的?
        var d=c.transformToFragment(a,window.document);
        removeNodeChildren(b);
        b.appendChild(d);
        return true
    }
    else
    {
        return false
    }
}
   
function loadingEvent(divID, imgUrl)
{
    document.getElementById(divID).innerHTML = imgUrl;
}