注册 | 登陆
您的位置:阿里西西 > 前端技术 > 脚本技术 > 详细内容

ajax如何解决火狐浏览器或其它非ie浏览器的兼容性问题

  稿源:互联网   2018-09-05 00:50:58   点击:   撤稿纠错
这行简单得多的代码在 Mozilla、Firefox、Safari、Opera 以及基本上所有以任何形式或方式支持 Ajax 的非 Microsoft 浏览器中,创建了XMLHttpRequest对象。

以下讨论的是和ajax 火狐 浏览器 ie浏览器 兼容性相关的ajax如何解决火狐浏览器或其它非ie浏览器的兼容性问题 教程文章,内容是本站精心挑选整理的教程,希望对广大的网友给到帮助,下面是详细内容:

  如果选择的浏览器不是 Internet Explorer,或者为非 Microsoft 浏览器编写代码,就需要使用不同的代码。事实上就是 清单 1 所示的一行简单代码:

  var xmlHttp = new XMLHttpRequest object;。

  这行简单得多的代码在 Mozilla、Firefox、Safari、Opera 以及基本上所有以任何形式或方式支持 Ajax 的非 Microsoft 浏览器中,创建了XMLHttpRequest对象。

  结合起来

  关键是要支持所有浏览器。谁愿意编写一个只能用于 Internet Explorer 或者非 Microsoft 浏览器的应用程序呢?或者更糟,要编写一个应用程序两次?当然不!因此代码要同时支持 Internet Explorer 和非 Microsoft 浏览器。清单 4 显示了这样的代码。

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

  /* 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 编译器命令。这段代码的核心分为三步:

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

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

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

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

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

  最后,xmlHttp应该引用一个有效的XMLHttpRequest对象,无论运行什么样的浏览器。


关于ajax如何解决火狐浏览器或其它非ie浏览器的兼容性问题的内容写到这里就结束啦,您可以收藏本页网址http://www.alixixi.com/web/ a/2018090549921.shtml方便下次再访问哦。