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

Ajax代码同时支持Internet Explorer 和非 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;
      }
   }
}

猜你喜欢

转载自seanloveqi.iteye.com/blog/1181628