Defined XmlHttp Object for both IE and FireFox

导读:
  使用JS调用xmlHttp读取远端文件,
  实现不刷新网页更新内容,
  如果用户浏览器是IE的话,我们习惯使用下面的方式:

  var xmlDom = new ActiveXObject("Microsoft.XMLHTTP"); 
  var strData = "code=123"; 
  xmlDom.open("POST", "default.asp",false); 
  xmlDom.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
  xmlDom.send(strData); 

 


  但,如果客户端是FireFox,这段代码就不能使用了
  因为FireFox不支持:ActiveXObject
  在FireFox中,必须使用下面的方式才行:
  new XMLHttpRequest()
  其实针对IE,有人也会使用:
  new ActiveXObject("Msxml2.XMLHTTP")
  不过这就要看客户端浏览器支持的xmlHttp是什么版本了。
  所以为了让大多数浏览器都可以使用,
  一般的想法是现判断浏览器的种类,然后建立相应的对象,
  不过查看Google的源码,
  他用了更巧妙的 try/catch 方法: 
     

function jb() { 
  var A=false; 
  try { 
  A=new ActiveXObject("Msxml2.XMLHTTP"); 
  } 
  catch(e) { 
  try { 
  A=new ActiveXObject("Microsoft.XMLHTTP"); 
  } 
  catch(oc) { 
  A=false; 
  } 
  } 
  if ( !A &&typeof XMLHttpRequest != "undefined" ) { 
  A=new XMLHttpRequest(); 
  } 
  return A; 
  } 

 

  

 

  这样,在使用时,只要这样调用就可以了:
  

    var xmlDom = jb(); 
  var strData = "code=123"; 
  xmlDom.open("POST", "default.asp", false); 
  xmlDom.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
  xmlDom.send(strData); 

 

 

 

  [Last Modified By todd, at 2005-07-20 13:08:48]
  Comments Feed:http://www.todd-lee.com/blog/feed.asp?q=comment&id=63

本文转自
http://www.todd-lee.com/blog/article.asp?id=63

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/abigfrog/archive/2007/10/19/1831956.aspx

 

 

 

你可能感兴趣的:(浏览器,IE,asp.net,asp,firefox)