以支持多种浏览器的方式创建 XMLHttpRequest 对象

81530694 2011-09-27

Ajax代码同时支持InternetExplorer和非Microsoft游览器

/* Create a new XMLHttpRequest object to talk to the Web server */
var xmlHttp = false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
try {
  xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
  try {
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (e2) {
    xmlHttp = false;
  }
}
@end @*/
if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
  xmlHttp = new XMLHttpRequest();
}

现在先不管那些注释掉的奇怪符号,如@cc_on,这是特殊的JavaScript编译器命令,将在下一期针对XMLHttpRequest的文章中详细讨论。这段代码的核心分为三步:

1.建立一个变量xmlHttp来引用即将创建的XMLHttpRequest对象。

2.尝试在Microsoft浏览器中创建该对象:

◦尝试使用Msxml2.XMLHTTP对象创建它。

◦如果失败,再尝试Microsoft.XMLHTTP对象。

3.如果仍然没有建立xmlHttp,则以非Microsoft的方式创建该对象。

创建XMLHttpRequest对象实例

var xmlHttp = false;
function createXmlHttpRequest()
{
   if(window.ActiveXObject)
   {
      try
      {
         xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
      }
      catch(e)
      {
         try
         {
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
         }
         catch(ee)
         {
            xmlHttp = false;
         }
      }
   }
   else if(window.XMLHttpRequest)
   {
      try
      {
         xmlHttp = new XMLHttpRequest();
      }
      catch(e)
      {
         xmlHttp = false;
      }
   }
}

相关推荐

80477204 / 0评论 2016-01-28