Ajax浏览器版本兼容问题

撑一支长篙的我 2012-04-04 02:40:20
有个问题纠结了我好久,实在搞不定,求救啊,请各位帮帮忙。似乎是关于浏览器版本兼容问题的,因为我用FireFox,Chrome,IE9测试都没有问题出现,而用IE8或更低的版本就出现问题了,从网上找到一些关于解决Ajax浏览器兼容问题的代码,还有根据在书上看到,其中关于创建XMLHttpRequest写的代码是这样:
var XMLHttpReq;
//创建XMLHttpRequest对象
function createXMLHttpRequest() {
if(window.XMLHttpRequest) { //Mozilla 浏览器

XMLHttpReq = new XMLHttpRequest();
window.alert(XMLHttpReq);//测试
}
else if (window.ActiveXObject) { // IE浏览器
try {
XMLHttpReq=new ActiveXObject("Msxml2.XMLHTTP");
window.alert(XMLHttpReq);//测试
} catch (e) {
try {
XMLHttpReq=new ActiveXObject("Microsoft.XMLHTTP");
window.alert(XMLHttpReq);//测试

} catch (e){
alert("您的浏览器不支持AJAX!");
return false;
}
}
}
}

但是结果却发现:在下面这个语句中:if(window.XMLHttpRequest),无论是FireFox还是IE9,IE8判断出来的竟然都是通过的,但是用XMLHttpReq = new XMLHttpRequest()这一句创建的时候,根据window.alert(XMLHttpReq)发现,FireFox、IE9都是能够正常创建的,但是IE8这里就没有正常创建XMLHttpRequest,根据在网上查到的我知道IE是没法用XMLHttpReq = new XMLHttpRequest()来创建XMLHttpRequest,可在判断window.XMLHttpRequest,想用XMLHttpReq=new ActiveXObject("Msxml2.XMLHTTP")来创建XMLHttpRequest都没法实现,请各位高手帮帮忙~~
...全文
314 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
孟子E章 2012-04-04
  • 打赏
  • 举报
回复
现在写一行就能完成这些工作,

XMLHttpReq = window.XMLHttpRequest? new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");

就可以了

孟子E章 2012-04-04
  • 打赏
  • 举报
回复
我用了new window.XMLHttpRequest()还是出错了,

出什么错了?
你保证是这行出错吗?
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

你的代码有问题!

var XMLHttpReq;
//创建XMLHttpRequest对象
function createXMLHttpRequest() {
if(window.XMLHttpRequest) { //Mozilla 浏览器

XMLHttpReq = new XML……
[/Quote]
那请问如果说我改成下面这样写呢?你看有没有错呢

var XMLHttpReq;
//创建XMLHttpRequest对象
function createXMLHttpRequest() {
if(window.XMLHttpRequest) { //Mozilla 浏览器

XMLHttpReq = new XMLHttpRequest();
window.alert(XMLHttpReq);//测试
}
else if (window.ActiveXObject) { // IE浏览器
try {
XMLHttpReq=new ActiveXObject("Msxml2.XMLHTTP");
window.alert(XMLHttpReq);//测试
} catch (e) {
try {
XMLHttpReq=new ActiveXObject("Microsoft.XMLHTTP");
window.alert(XMLHttpReq);//测试

} catch (e){
alert("您的浏览器不支持AJAX!");
return false;
}
}
}
}
xuzuning 2012-04-04
  • 打赏
  • 举报
回复
你的代码有问题!

var XMLHttpReq;
//创建XMLHttpRequest对象
function createXMLHttpRequest() {
if(window.XMLHttpRequest) { //Mozilla 浏览器

XMLHttpReq = new XMLHttpRequest();
window.alert(XMLHttpReq);//测试
}
else if (window.ActiveXObject) { //进入这个分支的条件是不支持 XMLHttpRequest
try {
XMLHttpReq=new window.XMLHttpRequest();//都不支持了怎么还用?
window.alert(XMLHttpReq);//测试
} catch (e) {
p2227 2012-04-04
  • 打赏
  • 举报
回复
不用jQuery就直接研究jQuery的源码,用得最多的一个实例了
m540920181 2012-04-04
  • 打赏
  • 举报
回复
<script type="text/javascript">
var xmlhttp;
function getIE(){
if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}else{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
}
我这个没有问题啊 ,而且在ie6上同样可以使用
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
if(window.XMLHttpRequest),无论是FireFox还是IE9,IE8

那是因为ie7之后,都采用了W3C的标准了 使用XMLHttpRequest对象,放弃使用XMLHTTP了
很多对象都是这样的,如addEventListener

现在IE中推荐使用new window.XMLHttpRequest()来创建
[/Quote]

刚刚我试了一下,我用了new window.XMLHttpRequest()还是出错了,
var XMLHttpReq;
//创建XMLHttpRequest对象
function createXMLHttpRequest() {
if(window.XMLHttpRequest) { //Mozilla 浏览器

XMLHttpReq = new XMLHttpRequest();
window.alert(XMLHttpReq);//测试
}
else if (window.ActiveXObject) { // IE浏览器
try {
XMLHttpReq=new window.XMLHttpRequest();
window.alert(XMLHttpReq);//测试
} catch (e) {
try {
XMLHttpReq=new window.XMLHttpRequest();
window.alert(XMLHttpReq);//测试

} catch (e){
alert("您的浏览器不支持AJAX!");
return false;
}
}
}
}

请问这样写有没有写对呢
孟子E章 2012-04-04
  • 打赏
  • 举报
回复
老教程害死人啊
孟子E章 2012-04-04
  • 打赏
  • 举报
回复
if(window.XMLHttpRequest),无论是FireFox还是IE9,IE8

那是因为ie7之后,都采用了W3C的标准了 使用XMLHttpRequest对象,放弃使用XMLHTTP了
很多对象都是这样的,如addEventListener

现在IE中推荐使用new window.XMLHttpRequest()来创建

Acesidonu 2012-04-04
  • 打赏
  • 举报
回复
用jquery吧省事

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧