封装自用的脚本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脚本3 function 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="‘+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; } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。