增加Ajax相关的js方法

PHPABC JavaScript 683 次浏览 没有评论

增加Ajax相关的js方法,这些方法大部分是基于prototype (一个很好的 JavaScript Framework )类库来写的。

1. loadAjaxElement,loadAjaxData,sendAjaxElement,sendAjaxData这四方法都是真接Ajax操作的方法;

2. parseXML,importXML,getTextNodeValue这三个方法是对于Ajax返回结果中的xml数据的处理;如果返回结果非标准 xml文档的话,可以通过parseXML来处理,生成XMLDocument对象;

3.getParams方法是用来返回当前页面的 url参数值的;

4.showLoading,hideLoading这两个方法用来显示在页面加载过程中提示信息;

//Ajax功能;
 
function loadAjaxElement(e,u,p,f,l){
 
    if(arguments.length < 3){
 
        return ;
 
    }
 
    var o = $(e);
 
    o.innerHTML = l;
 
    if(typeof p != 'string'){
 
        p = $H(p).toQueryString();
 
    }
 
    new Ajax.Updater( {success: e},u,{method: 'get', parameters: p, onFailure: f});
 
}
 
function loadAjaxData(u,p,s,f){
 
    if(arguments.length < 3){
 
        return ;
 
    }
 
    if(typeof p != 'string'){
 
        p = $H(p).toQueryString();
 
    }
 
    new Ajax.Request(
u,{method: 'get', parameters: p, onSuccess:s,onFailure: f});
 
}
 
function sendAjaxElement(e,u,p,f,l){
 
    if(arguments.length < 3){
 
        return ;
 
    }
 
    var o = $(e);
 
    o.innerHTML = l;
 
    if(typeof p != 'string'){
 
        p = $H(p).toQueryString();
 
    }
 
    new Ajax.Updater(
{success: e},
u,
{method: 'post', parameters: p, onFailure: f});
 
}
 
function sendAjaxData(u,p,s,f){
 
    if(arguments.length < 3){
 
    return ;
 
    }
 
    if(typeof p != 'string'){
 
        p = $H(p).toQueryString();
 
    }
 
    new Ajax.Request(
u,
{method: 'post', parameters: p, onSuccess:s,onFailure: f});
 
}
 
function parseXML(s){
 
    try{
 
        var domParser = new DOMParser();
 
        var o = domParser.parseFromString(s,
'application/xml');
 
        return o.documentElement;
 
    }catch(e){
 
        try{
 
            var o = getIEXmlAX();
 
            o.loadXML(s);
 
            return o.documentElement;
 
        }catch(e){
 
            return null;
 
        }
 
    }
 
}
 
function importXML(u,s,f){
 
    new Ajax.Request(
u,
{method: 'get', parameters: null, onSuccess:function(v){s(v.responseXML.documentElement);},onFailure: f});
 
}
 
function getIEXmlAX(){
 
    var i,activeXarr;
 
    activeXarr = new Array(
 
                                "MSXML4.DOMDocument",
 
                                "MSXML3.DOMDocument",
 
                                "MSXML2.DOMDocument",
 
                                "MSXML.DOMDocument",
 
                                "Microsoft.XmlDom"
 
    );
 
    for(i=0; i<activeXarr.length; i++){
 
        try
{
 
            var o = new ActiveXObject(activeXarr[i]);
 
            return o;
 
        }
catch(objException){}
 
    }
 
    return false;
 
}
 
function getTextNodeValue(d,n,e){
 
    if(typeof e == 'undefined'){
 
        e = false;
 
    }
 
    var a = d.getElementsByTagName(n);
 
    if(a==null){
 
        return null;
 
    }
 
    if(a.length==1){
 
        return (e)?unescape(a[0].firstChild.nodeValue):a[0].firstChild.nodeValue;
 
    }else{
 
        var ra = new Array();
 
        for(var i=0;i<a.length;i++){
 
            ra[i] = (e)?unescape(a[i].firstChild.nodeValue):a[i].firstChild.nodeValue;
 
        }
 
        return ra;
 
    }
 
}
 
function getParams(){
 
    var o = new Object()
 
    var a=document.location.search.substr(1).split('&');
 
    for (i=0;i<a.length;i++){
 
        try{
 
            var aa=a[i].split('=');
 
            var n=aa[0];
 
            var v=aa[1];
 
            o[n]=trim(v);
 
        }catch(e){
 
        }
 
    }
 
    return o;
 
}
 
function showLoading(c,b,a){
 
    switch(arguments.length){
 
        case 2:
 
            a = 0.9;
 
        case 1:
 
            b = "#000000";
 
        case 0:
 
            c = "#FFFFFF";
 
        break;
 
    }
 
    var d = document;
 
    if($("loading_div") == null){
 
    var s = '<div id="loading_div" style="position:absolute;left:0px;top:0px;width:100%;height:100%; z-index:auto;text-align: center;font-family: Courier New, Courier, mono;font-size: 12px;color:'+c+';padding-top: 30%;background-color:'+b+';"><h1>正在加载页面...</h1>< /div>';
 
    d.write(s);
 
    }
 
    var o = $("loading_div");
 
    if(o.style.MozOpacity){
 
        o.style.MozOpacity = a;
 
    }else if(o.style.opacity){
 
        o.style.opacity = a;
 
    }else{
 
        a = a * 100;
 
        o.style.filter='Alpha(Opacity='+a+')';
 
    }
 
}
 
function hideLoading(){
 
    $("loading_div").style.display = 'none';
 
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

Go