首 页
·
站长博客
·
用户注册
·
会员登陆
·
会员排行
·
最新主题
·
最近回复
☆
精华区
版权声明
·
论坛管理
当前登录身份:游客,请先登录。 笔名:
口令:
验证码:
楼 主
index
»
Ajax/xAjax技术专区
»
XMLHttpRequest与ActiveXObject
作者:
lather
注册时间:2005-04-21
主题/回复:37/63
积分:
1079
等级:★★★☆(七级)
称号:论坛贤士
lather@lather.co..
66584152
www.ent.bj.cn/
发表:2008-01-14 17:09:41 阅读
4214
次 回复
3
次 得分
3
|
字号
10px
12px
14px
16px
18px
20px
24px
字色
▅▅▅▅▅
▅▅▅▅▅
▅▅▅▅▅
▅▅▅▅▅
▅▅▅▅▅
▅▅▅▅▅
XMLHttpRequest与ActiveXObject
哈哈,我也写书!
一个Ajax交互是从一个名为XMLHttpRequest的JavaScript对象开始的, 实际上就是创建并调用XMLHttpRequest对象。下面我们介绍一下如何创建这个对象。
19.1.3.1 XMLHttpRequest对象
创建XMLHttpRequest对象很简单,如下:
<script language="javascript" type="text/javascript">
var ajaxHttp = new XMLHttpRequest();
</script>
上面是一段简单的Javascript代码,直接创建了一个XMLHttpRequest对象。需要特别说明的是,这个对象只能在IE以外的浏览器中创建。
19.1.3.2 ActiveXObject对象
在Microsoft IE浏览器上创建XMLHttpRequest对象的方法如下:
var xmlHttp = false; //声明一个变量
//使用不同版本的MSXML创建对象
try {
ajaxHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
ajaxHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
ajaxHttp = false;
}
}
您需要牢记下面这两行代码:
ajaxHttp = new ActiveXObject("Msxml2.XMLHTTP");
和
ajaxHttp = new ActiveXObject("Microsoft.XMLHTTP");
这两行代码基本上就是尝试使用一个版本的 MSXML 创建对象,如果失败则使用另一个版本创建该对象。如果都不成功,则将 ajaxHttp变量设为 false,告诉您的代码出现了问题。如果出现这种情况,可能是因为安装了非 Microsoft 浏览器,创建对象方法请阅读19.1.3.1。
接下来我们我们构建一个初始化Ajax的函数,使其既能支持Microsoft IE浏览器也能支持非Microsoft IE浏览器,代码如下:
/**
* 初始化一个XMLHttpRequest对象
*/
function InitAjax()
{
var ajaxHttp=false;
//尝试创建Microsoft IE浏览器支持的对象
try {
ajaxHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
ajaxHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
ajaxHttp = false;
}
}
//如果创建不成功,则尝试创建非Microsoft IE浏览器支持的对象
if (!ajaxHttp && typeof XMLHttpRequest!='undefined') {
ajaxHttp = new XMLHttpRequest();
}
return ajaxHttp;
}
那么我们在执行任何Ajax操作之前,都必须先调用InitAjax()函数来实例化一个Ajax对象。
1#楼
回复人:
INP
注册时间:2004-04-05
主题/回复:
12/38
积分:
516
等级:★★☆(五级)
称号:略有小成
用户联系方式已设置为保密
1#楼
发表于
2008-03-27 21:33:11
评分:
1
回复给楼主(lather)
你好,XMLHttpRequest对象在ie7上是可以直接创建的。但在ie6及以前则不能创建,而且很琐碎。
请测试。
2#楼
回复人:
一起PHP
注册时间:2004-02-27
主题/回复:
247/1521
积分:
4649
等级:★★★★★☆(十一级)
称号:论坛圣人
2#楼
发表于
2008-03-28 08:11:56
评分:
1
回复给楼主(lather)
INP现在对此果然有研究?
3#楼
回复人:
lc0633
注册时间:2007-08-08
主题/回复:
1/8
积分:
427
等级:★★☆(五级)
称号:略有小成
3#楼
发表于
2009-03-02 10:38:02
评分:
1
代码如下:
XMLHttpRequest与ActiveXObject
回复给楼主(lather)
学习一下了
页数
1/1
:
首页
«
1
»
末页
发表回复:您还没有登陆,无法发表回复。请先
[登陆]
一起PHP技术联盟 主办:一起PHP 联系方式:站长QQ:4304410 QQ群:8423742 20159565
站长博客
E-mail:
nqp@nqp.me
执行时间:0.006sec
SimsmaBBS 2008 (v6.0)
Developed by
17php.com
,Copyright(C)2003-2010 All rights reserved. 副本授权:
一起PHP官方专用版