狗屁到灶 XMLHttpRequest

本文介绍了一种在Internet Explorer 7中使用Ajax时遇到的问题及其解决方案。问题源于IE7对特定JavaScript语法的支持不足,文中提供了调整创建Ajax对象方法的具体代码示例。

 

目前要玩Ajax的話當然一定要建立這樣的物件,坊間的書籍資料都很多也沒什麼好在介紹的不過建立這物件如果不是用JavaScript Framework,基本上按圖施工應該是沒問題的但是瀏覽器(browser)的種類及版本這麼多總會有一天遇到鬼的,那就是我遇到拉,而且Debug還不是普通的難其他Browser都不會發生就只發生在IE 7,又是M$的一個傑作…OOXX 又愛又恨.

根據某範例的寫法會發生以下問題:

Debug畫面顯示:…略

為什麼會發生?:

一樣要與別人不樣的M$現在又想跟其他Browser一樣,但是又不支援這樣的語法overrideMimeType('text/xml') 所以IE7 以上的版本會有這樣的問題產生.

解決方案?:

改寫建立物件產生方式

….

if (window.XMLHttpRequest){

req = new XMLHttpRequest();

if (req.overrideMimeType) {

req.overrideMimeType('text/xml'); //IE 7 以上RUN 有問題

}

setRequestHeader() //通用語法

SetRequestHeader() //IE語法

//通用語法

var xmldoc = source.responseXML;

var l;

var textElements = xmldoc.getElementsByTagName("result");

l = textElements.length;

for(var i = 0; i < l ; i++){

resultXML = textElements[i];

if(resultXML.childNodes.length > 0) // there is a return value

lookupResultList[i] = decodeURIComponent(resultXML.childNodes[0].data);

}

return lookupResultList;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值