首页 > 代码库 > 封装自用的脚本ajax.js

封装自用的脚本ajax.js

function createxmlhttp(){    xmlhttpobj = false;    try{//创建对象,一个一个的试,哎,要是能统一标准都好。。        xmlhttpobj = new XMLHttpRequest;    }catch(e){        try{            xmlhttpobj=new ActiveXObject("MSXML2.XMLHTTP");        }catch(e2){            try{                xmlhttpobj=new ActiveXObject("Microsoft.XMLHTTP");            }catch(e3){                xmlhttpobj = false;            }        }    }    return xmlhttpobj; }//执行Ajax返回HTML中的JavaScript脚本3function executeScript_3(html) {    var regDetectJs = /<script(.|\n)*?>(.|\n|\r\n)*?<\/script>/ig;    var jsContained = html.match(regDetectJs);    if(jsContained) {        // 分段取出js正则        var regGetJS = /<script(.|\n)*?>((.|\n|\r\n)*)?<\/script>/im;        // 按顺序分段执行js        var jsNums = jsContained.length;        for (var i=0; i<jsNums; i++) {            var jsSection = jsContained[i].match(regGetJS);            if(jsSection[2]) {                if(window.execScript) {                    // 给IE的特殊待遇                    window.execScript(jsSection[2]);                } else {                    // 给其他大部分浏览器用的                    window.eval(jsSection[2]);                }            }        }    }}function getsubcategory(url_str,show_id){    //显示Loading提示信息    show_load_div(1);    if (show_id == ‘main_content‘)    {        //如果输出ID为main_content,则将url_str写入到cookies,方面页面F5刷新或者跳转        //getsubcategory_2(‘menu_cookies.asp?url_str=‘+escape(url_str),‘menu_cookies_temp‘);    }    if (document.getElementById(‘url_span‘)){        url_head = window.location.protocol + ‘//‘ + window.location.host + ‘/‘;        if(url_str.indexOf("http") > -1 ) url_head = ‘‘;        var Cts = url_str;        if(Cts.indexOf("ajax_url=0") < 0 )    //如果地址参数中不包含ajax_url=0,则更新AJAX地址。        {            document.getElementById(‘url_span‘).innerHTML=url_head + url_str + ‘&load=iframe‘;        }    }    if(url_str==""){        document.getElementById(show_id).innerHTML="文件AJAX.JS / 函数function getsubcategory / 参数url_str有误";        show_load_div(0);        return;    }    var xmlhttpobj = createxmlhttp();    if(xmlhttpobj){//如果创建对象xmlhttpobj成功        //组成最终url        if (url_str.indexOf("?") > -1)        {            ajax_url = url_str+"&load=ajax&rnd_number="+Math.random();        } else {            ajax_url = url_str+"?load=ajax&rnd_number="+Math.random();        }        xmlhttpobj.open(‘get‘,ajax_url,true);//get方法 加个随机数。        xmlhttpobj.send(null);        xmlhttpobj.onreadystatechange=function(){//客户端监控函数        //加载等待提示信息        load_str = ""            if(xmlhttpobj.readyState==4){//服务器处理请求完成            //干她娘的firefox浏览器,上面的readyState中的S必须大写,否则在firefox中不起作用,干她老母,这也区分大小写!                if(xmlhttpobj.status==200){                    //清空原始容器中的内容                    if (document.getElementById(show_id))                    {                        document.getElementById(show_id).innerHTML=‘‘;                        var html = xmlhttpobj.responseText;//获得返回值                        document.getElementById(show_id).innerHTML=html;                    }                    //隐藏loading信息                    show_load_div(0);                    //if(myBrowser()=="FF" || myBrowser()=="Safari" || myBrowser()=="Opera")                    if(!is_IE_Browser())                    {                        //executeScript_1(html);                        //executeScript_2(html);                        executeScript_3(html);                    }                }else{                    //隐藏loading信息                    show_load_div(0);                    document.getElementById(show_id).innerHTML=‘对不起,数据请求错误(<a href="http://www.mamicode.com/‘+ajax_url+‘" target="_blank">‘+ajax_url+‘</a>)...‘;                }            }else{                //document.getElementById(show_id).innerHTML=load_str;//服务器处理中                show_load_div(1);            }        }        }}//正在载入中function show_load_div(str_s) {    if (document.getElementById(‘loading_div‘))    {        if (str_s==1)        {            document.getElementById(‘loading_div‘).style.display = ‘‘;        } else {            document.getElementById(‘loading_div‘).style.display = ‘none‘;        }    }}//检测是否IE浏览器function is_IE_Browser() {    var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串    var isOpera = userAgent.indexOf("Opera") > -1; //判断是否Opera浏览器    var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera ; //判断是否IE浏览器     if(isIE) {        return true;    } else {        return false;    }}

 

封装自用的脚本ajax.js