QQ 1640076782

2013年06月27日

Ajax判断浏览器

Filed under: phper — 标签:, , — liphp @ 1:38 上午
最近网站经常遇到在谷歌、火狐浏览器上删除功能不可用。后来查看了一下代码。发现Ajax判断浏览器上没有做处理、、默认的只是支持的IE浏览器、于是我在IE上测试如果如此。
对于操作者而言当然是什么浏览器都支持是比较好的。那样操作也方便、。于是我对于Ajax的操作做了个简单的适应各种浏览器的总结。

首先了解Ajax是如何执行的:

Ajax的执行一般分成4个步骤:

1,创建 XMLHttpRequest 对象的语法:

variable=new XMLHttpRequest();

2,向服务器发送请求:
   xmlhttp.open("GET","test1.txt",true);
   xmlhttp.send();
3,服务器响应:
如果来自服务器的响应并非 XML,可以使用 responseText 属性。
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

如果来自服务器的响应是 XML,而且需要作为 XML 对象进行解析,请使用 responseXML 属性:
xmlDoc=xmlhttp.responseXML;
txt="";
x=xmlDoc.getElementsByTagName("ARTIST");
for (i=0;i<x.length;i++)
  {
  txt=txt + x[i].childNodes[0].nodeValue + "<br />";
  }
document.getElementById("myDiv").innerHTML=txt;

4,执行。
现在谈谈第一步创建对象的方法。。浏览器判断这在这一步完成:


//创建XMLHttpReuest对象
function createXMLHttpRequest(){
var xmlhttp;
if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();//IE浏览器
}
else if(window.ActiveXObject){
xmlhttp = new ActiveXObject("MSXML2.XMLHTTP");//非IE浏览器
}
return xmlhttp;
}
当然也可以这样写:

创建一个布尔型变量,用来检查是否为合法的IE实例

var xmlhttp = false;
//检查是否使用的是IE
try {
//如果JavaScript的版本大于5
xmlhttp = new ActiveXObject(“Msxml2.XMLHTTP”); } catch (e1) {
// 如果不是,则使用老版本的ActiveX对象来检查
try { //如果使用的是IE浏览器
xmlhttp = new ActiveXObject(“Microsoft.XMLHTTP”); } catch (e2) {
// 否则肯定使用的是非IE浏览器
xmlhttp=false; } }}
//如果使用的是非IE浏览器,则创建一个该对象的JavaSript实例
if(!xmlreq && typeof XMLHttpRequest!=’undefined’){
xmlreq=new XMLHttpRequest();
}