`
SeanLoveQi
  • 浏览: 2586 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

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

    博客分类:
  • Ajax
阅读更多
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;
      }
   }
}
分享到:
评论

相关推荐

    支持多种浏览器创建XMLHttpRequest对象代码

    ### 支持多种浏览器创建XMLHttpRequest对象代码 随着Web技术的发展与演进,跨浏览器兼容性一直是前端开发者面临的重要挑战之一。特别是在处理Ajax请求时,如何优雅地在不同浏览器(尤其是IE与其他现代浏览器)间...

    使用XMLHttpRequest对象.doc

    如果浏览器支持 ActiveX 对象,就可以使用 ActiveX 来创建 XMLHttpRequest 对象。否则,就要使用本地 JavaScript 对象技术来创建。 在创建 XMLHttpRequest 对象实例时,需要注意浏览器的差异。不同的浏览器对 ...

    XMLHTTPREQUEST

    不同的浏览器对`XMLHTTPRequest`的支持方式略有不同,主要分为两种:IE浏览器和其他非IE浏览器(如Firefox、Chrome等)。 ##### IE浏览器 对于IE浏览器,可以使用`ActiveXObject`来创建`XMLHTTPRequest`对象。 ```...

    XMLHttpRequest对象详解

    同时,XMLHttpRequest支持多种事件,如`onload`、`onerror`、`onprogress`等,用于在不同阶段执行相应的处理函数。 在实际应用中,我们通常会使用Promise或者async/await语法来改善异步操作的可读性,例如: ```...

    AJAX_XMLHttpRequest.rar_ajax java_ajax xmlhttpreque_opera

    由于XMLHttpRequest不是一个W3C标准,所以可以采用多种方法使用JavaScript来创建XMLHttpRequest的实例。 Internet Explorer把XMLHttpRequest实现为一个ActiveX对象,其他浏览器(如Firefox、Safari和Opera)把它...

    XMLHttpRequest对象参考

    一、创建XMLHttpRequest对象 在JavaScript中,XMLHttpRequest对象可以通过`new XMLHttpRequest()`来创建。虽然名称中包含XML,但实际传输的数据格式并不局限于XML,可以是JSON、文本、HTML等。 二、理解...

    解析ajax核心XMLHTTPRequest对象的创建与浏览器的兼容问题

    然而,不同浏览器在实现XMLHttpRequest对象时存在差异,这就需要开发者编写兼容多种浏览器的代码。 #### XMLHTTPRequest对象的创建 在IE浏览器中,XMLHTTPRequest对象是通过ActiveX对象来创建的。在IE的不同版本中...

    如何创建ajax对象并兼容多个浏览器

    但是,由于不同浏览器之间的实现差异,如何创建一个兼容所有浏览器的XMLHttpRequest对象成为了开发过程中的一个挑战。 为了兼容包括IE在内的不同浏览器,我们需要编写能够检测浏览器类型并实例化相应对象的...

    ajax原理,xmlHttpRequest

    // 非IE浏览器创建XMLHttpRequest对象 if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } // IE浏览器创建XMLHttpRequest对象 else if (window.ActiveXObject) { try { xmlhttp = new ...

    Ajax创建XMLHttp对象的完美兼容性代码

    ActiveX是一种由微软公司提出的技术,它允许在用户的计算机上运行由网络提供的软件组件,这在IE浏览器中被用来创建XMLHttpRequest对象。需要注意的是,ActiveX控件通常需要用户在浏览器中启用,而且它可能会引起安全...

    XMLHttpRequest笔记

    - **现代浏览器**(如 Firefox, Opera, Safari, IE7.0, IE8.0 及以上版本)都支持通过 `window.XMLHttpRequest` 来创建 `XMLHttpRequest` 对象。 - **IE6.0 和 IE5.5** 这些旧版浏览器则需要使用 `window....

    拦截由XMLHttpRequest发出的浏览器http请求.zip

    XMLHttpRequest对象创建后,通过`open()`方法指定请求类型(GET、POST等)、URL以及是否异步执行。接着,使用`send()`方法发送请求。当请求完成时,会触发`onreadystatechange`事件,通过`readyState`属性和`status`...

    lotus domino AJAX 老的ajax方法

    在上述代码中,我们可以看到使用了多种方法来创建 XMLHttpRequest 对象,以便在不同浏览器中实现 Ajax 功能。其中, `new ActiveXObject("Msxml2.XMLHTTP")` 和 `new ActiveXObject("Microsoft.XMLHTTP")` 是用于在 ...

    XMLHttpRequest中文参考手册

    在JavaScript中,创建XMLHttpRequest对象通常通过`new XMLHttpRequest()`来完成。这个对象提供了一系列方法和属性,用于管理请求和响应。 3. **XMLHttpRequest的方法** - `open()`: 初始化一个请求,参数包括请求...

    XMLHTTP多浏览器兼容性写法

    在IE浏览器中,ActiveXObject是创建XMLHTTP对象的唯一方式,而在其他浏览器中,XMLHttpRequest对象是创建XMLHTTP对象的唯一方式。 在这个方法中,我们使用了try-catch语句来捕捉可能出现的错误,并在catch语句中...

    js跨浏览器是正对目前各浏览器标准不同

    使用跨浏览器测试工具如BrowserStack、Sauce Labs或虚拟机,确保在多种浏览器和设备上测试代码。同时,开发者工具(如Chrome DevTools、Firefox Developer Tools)也有助于定位和修复兼容性问题。 总之,解决...

    AJAX案例研究之详细剖析Gmail应用

    通过使用不同的方法创建XMLHttpRequest对象,以及针对不同浏览器的行为调整代码,确保了在多种浏览器上的稳定运行。例如,对于不支持XMLHttpRequest的浏览器,Gmail会提示用户启用JavaScript和ActiveX控件。 总结...

    支持各种浏览器的上传控件

    总的来说,创建一个支持多种浏览器的上传控件涉及HTML、JavaScript以及可能的服务器端代码。通过理解文件API、事件监听、Ajax上传以及利用现有的库,我们可以构建一个健壮且跨平台的文件上传解决方案。

    javascript一个无懈可击的实例化XMLHttpRequest的方法

    1. 首先,尝试使用现代浏览器的方式来创建XMLHttpRequest对象。 2. 如果上述方式失败(即window.XMLHttpRequest属性不存在),则尝试使用IE浏览器的方式来创建。 3. 在IE浏览器的方式中,首先尝试创建最新版的...

Global site tag (gtag.js) - Google Analytics