www.baike369.com
百科369 > Ajax教程 > XMLHttpRequest(XHR)创建跨浏览器的对象

XMLHttpRequest(XHR)创建跨浏览器的对象


XMLHttpRequest(XHR)创建跨浏览器的对象

对于创建跨浏览器的XHR对象的最好解决方法就是编写一个简单的封装函数createXHR(),对该对象进行封装。源代码如下:

function createXHR()
{
  try{return new XMLHttpRequest();} catch(e){}
  try{return new ActiveXObject("Msxml2.XMLHTTP.6.0");} catch(e){}
  try{return new ActiveXObject("Msxml2.XMLHTTP.3.0");} catch(e){}
  try{return new ActiveXObject("Msxml2.XMLHTTP");} catch(e){}
  try{return new ActiveXObject("Microsoft.XMLHTTP");} catch(e){}
  return null;
}

这样如果需要时,其它技术也可以很容易地添加进来。在上述代码中,首先通过最多支持的ActiveX的解决方案来尝试本地实例化(native instantiation),并且如果创建任何代码的话,最终就会返回null。

要创建跨浏览器的XHR对象,所有需要做的工作就是调用这个封装的函数,并且确保它返回了某些代码:

var xhr=createXHR();
if(xhr)
{
  // 创建代码
}

现在,有了XHR对象以后,就可以用它来创建一个请求了。


提示

存在称为IceBrowser的基于Java的浏览器,它支持另一种形式的XHR的创建方式,即window.createRequest(),我们可以把它添加到自己的封装程序中去。其它不常见的浏览器也可能会使用非传统的(alternative)XHR语法,但是除非假定我们知道它们是可能存在的,否则就要避免使用这些不常见的的奇特代码。

Copyright© 2011-2016 www.baike369.com All Rights Reserved