设为首页
收藏本站
最新电影
您现在的位置: 首页=>后台技术=>ajax 订阅本栏目  
解析XMLHttpRequest相对于不同浏览器对象建立的不同方法
时间: 2007-10-24 14:42:58 阅读次数:2035


还记得几年前的那些讨厌的浏览器战争吗?没有一样东西在不同的浏览器上得到同样的结果不管您是否相信,这些战争仍然在继续,虽然规模较小飞飞Asp技术乐@园但令人奇怪的是,XMLHttpRequest 成了这场战争的牺牲品之一因此获得 XMLHttpRequest 对象可能需要采用不同的方法下面我将详细地进行解释

使用 Microsoft 浏览器

Microsoft 浏览器 Internet Explorer 使用 MSXML 解析器处理 XML因此如果编写的 Ajax 应用程序要和 Internet Explorer 打交道,那么必须用一种特殊的方式创建对象

但并不是这么简单根据 Internet Explorer 中安装的 JavaScript 技术版本不同,MSXML 实际上有两种不同的版本,因此必须对这两种情况分别编写代码请参阅如下代码,其中的代码在 Microsoft 浏览器上创建了一个 XMLHttpRequest


var xmlHttp = false;
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}



现在只要牢牢记住其中的两行代码:

xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");



xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

这两行代码基本上就是尝试使用一个版本的 MSXML 创建对象,如果失败则使用另一个版本创建该对象不错吧?如果都不成***,则将 xmlHttp 变量设为 false,告诉您的代码出现了问题如果出现这种情况,可能是因为安装了非 Microsoft 浏览器,需要使用不同的代码

处理 Mozilla 和非 Microsoft 浏览器

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


<script language="javascript" type="text/javascript">
var xmlHttp = new XMLHttpRequest();
</script>


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

结合起来

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



<script language="javascript" type="text/javascript">
var xmlHttp = false;

try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}

if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}
</script>



这段代码的核心分为三步:

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

2,尝试在 Microsoft 浏览器中创建该对象:
尝试使用 Msxml2.XMLHTTP 对象创建它
如果失败,再尝试 Microsoft.XMLHTTP 对象

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

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






站内搜索    

下一篇9 个基于JavaScript 和 CSS 的 Web 图表框架

上一篇暂无

本栏目最新 栏目最新列表
9 个基于JavaScript 和 CSS 的 Web 图表框架
解析XMLHttpRequest相对于不同浏览器对象建
网站优化策划 栏目最新列表
增加网站外链的快速方法
网站上线前必做的30个检查
新的友情链接参考标准(没有google的PR情况
优化Google的AdSense广告的五个工具
王通讲SEO八大基础
站点最新 站点最新列表
微博推广的一些技巧
xhEditor v1.1.7 发布,
收集的一些轻量级非常实
50个新鲜兼容最新版本的
javascript中cookie的设
Excel中出现#VALUE!、#D
jquery插件:飞飞表情插件
十个使用HTML5开发的精彩
支持HTML5的浏览器有哪些
飞妮莫属:漫画:如何写出
历史最热10条信息  
MIME介绍 及 [1] [2] [3]
巧用Google和迅雷来下载
Transact SQL 常 [1] [2]
VIA Rhine II Fast Ethe
电脑常用端 [1] [2] [3]
Do you get a kick out
十道羊皮卷 欣赏+mp3版+
每日一句:A friend and
每日一句:Theres no tu
经典__悟透JavaScript
 width= 
伟哥博客 西安房产 123最新电影 三四六四