Ajax相關的Js方法

來源:互聯網
上載者:User
ajax|js
增加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
        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
            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
        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 = '

';

    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';

}

 


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.