当前位置: 代码迷 >> Ajax >> Ajax 兼容ie6以下和firefox版本
  详细解决方案

Ajax 兼容ie6以下和firefox版本

热度:138   发布时间:2012-11-01 11:11:32.0
Ajax 兼容ie6以上和firefox版本
var request = false;
var btype=getInternet();  
function getInternet()    
{    
if(navigator.userAgent.indexOf("MSIE")>0) {    
              return "MSIE";       //IE浏览器  
 }  
 if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){    
              return "Firefox";     //Firefox浏览器  
 }  
 if(isSafari=navigator.userAgent.indexOf("Safari")>0) {    
              return "Safari";      //Safan浏览器  
 }  
 if(isCamino=navigator.userAgent.indexOf("Camino")>0){    
              return "Camino";   //Camino浏览器  
}  
 if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0){    
              return "Gecko";    //Gecko浏览器  
 }    
}   
try {
  request = new XMLHttpRequest();
} catch (trymicrosoft) {
  try {
    request = new ActiveXObject("Msxml2.XMLHTTP");//支持microsoft
  } catch (othermicrosoft) {
    try {
      request = new ActiveXObject("Microsoft.XMLHTTP");//支持非microsoft
    } catch (failed) {
      request = false;  
    }  
 }
}

if(!request)
  alert("Error!!游览器不安全,请选择较高版本游览器!");
//调用的ajax 事件
function getInfo(type) {
 
  var url = *******************************.action;
  request.open("GET", url, true);//发送请求
   if(btype=="Firefox"){  //firefox 的回调设置
         request.onreadystatechange = function(){  
         updateKeylist();  
    };  
    request.send(null);      
    request.onreadystatechange = function(){  
    updateKeylist();  
  };   
  }else{//其他的回调设置{这里只考虑到了ie,其他的能用这个算碰对了呗}  
     request.onreadystatechange = updateKeylist;  
     request.send(null);  
   } 
}

function updateKeylist(){
  if(request.readyState == 4){//响应完成
		 if (request.status == 200){//正常运行
        	var result=request.responseText;//获得返回数据字符串
		//---对result处理就可以了
        	 //***************************demo star***********************//
		//-----获得下拉框对象
        	var sel=document.getElementById("sel");//获得sel
        	 var strkey=result.split(";");//截取对象集合
        	  sel.length=0;//清空下拉框
       	 for(var i=0 ;i<strkey.length;i++){//循环替换下拉框对象
      	 	var k=strkey[i].indexOf(",");//获得‘,’的位置
        	 	 if(k==-1){//没有值的时候
        	 	 	++i;
        	 	   continue;
        	 	   }
        	 	 var id=strkey[i].substring(0,k);
        	 	  if(strkey[i].length<=k){//关键字名称为空的不显示
        	 	  		++i;
        	 	  	continue;
        	 	  }
        	 	 var name=strkey[i].substring(k+1);
        	 	 sel.options[sel.length]=new Option(name,id);//逐个添加
        	 }
	//***************************end*********************//
        }else if (request.status == 404)//未找到请求
        alert("Request URL 无法找到!!");
    else
      alert("Error:异常:编号为:" + request.status);
	 }
}






//-------------------------------action 中
 
 	StringBuffer result=new StringBuffer();
 	 for(TdKeyMO mo : listmo){
       result.append(mo.getId()).append(",").
      append(mo.getName()).append(";");
 	 }

	//组装 输出字符串完毕 

 	 super.httpServletResponse.setContentType("text/xml; charset=UTF-8");
//从这里开始呗. 
 	 super.httpServletResponse.setHeader("Cache-Control", "no-cache");
//处理编码格式
 	 PrintWriter out;//out对象
 	try {
 		out = super.httpServletResponse.getWriter();
 		out.print(result.toString());//输出
 		out.close();//****
 	} catch (IOException e) {
 		e.printStackTrace();
 	}

1 楼 chenxiang105 2010-10-02  
  是不是这样的写法没人在用了??
  相关解决方案