解決jQuery ajax請(qǐng)求在IE6中莫名中斷的問題
場(chǎng)景還原:給a標(biāo)簽綁定了一個(gè)click事件用來觸發(fā)ajax請(qǐng)求,在IE6中,請(qǐng)求時(shí)常會(huì)被中斷,在非IE6中都一切正常。
<a href="javascript:;" id="btn">click me</a>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
var url = "http://api.flickr.com/services/"
"feeds/photos_public.gne?tags=car&"
"tagmode=any&format=json&jsoncallback=?";
$( "#btn" ).click(function(){
$.getJSON( url, function( data ){
alert( data );
});
});
</script>
在IE6中使用Fiddler2監(jiān)視請(qǐng)求,經(jīng)常會(huì)出現(xiàn)”aborted”,折騰了許久,相當(dāng)?shù)脑幃悺:髞韺標(biāo)簽換成button,請(qǐng)求正常,最后經(jīng)提醒,可能是a標(biāo)簽的默認(rèn)事件中斷了請(qǐng)求。但是,在HTML代碼中,已經(jīng)將a標(biāo)簽的href設(shè)置成了”javascript:;”,通常這樣是可以阻止默認(rèn)事件了(頁(yè)面跳轉(zhuǎn))。a標(biāo)簽的click事件會(huì)先執(zhí)行,然后才執(zhí)行href的跳轉(zhuǎn),如果href是一段javascript語(yǔ)句,這個(gè)時(shí)候就會(huì)執(zhí)行。IE6在執(zhí)行href的javascript語(yǔ)句時(shí)就中斷了click觸發(fā)的ajax請(qǐng)求。使用href=”javascript:;”是為了阻止默認(rèn)事件,將阻止默認(rèn)事件的動(dòng)作移到click事件中就可以解決問題了,這樣就不會(huì)執(zhí)行href中的javascript語(yǔ)句了。
$( "#btn" ).click(function(e){
$.getJSON( url, function( data ){
alert( data );
});
e.preventDefault();
});
注:e.preventDefault(); 這一句的作用就是阻止js中的默認(rèn)事件。
以上就是本文的全部?jī)?nèi)容,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- jQuery解決IE6、7、8不能使用 JSON.stringify 函數(shù)的問題
- jquery fancybox ie6不顯示關(guān)閉按鈕的解決辦法
- jquery submit ie6下失效的原因分析及解決方法
- 解決jquery的.animate()函數(shù)在IE6下的問題
- 關(guān)于jquery中動(dòng)態(tài)增加select,事件無效的快速解決方法
- jQuery:delegate中select()不起作用的解決方法(實(shí)例講解)
- jquery html動(dòng)態(tài)生成select標(biāo)簽出問題的解決方法
- jQuery選中select控件 無法設(shè)置selected的解決方法
- jQuery 跨域訪問問題解決方法
- jquery的ajax()函數(shù)傳值中文亂碼解決方法介紹
- jQuery在ie6下無法設(shè)置select選中的解決方法詳解
相關(guān)文章
Javascript中的Array數(shù)組對(duì)象詳談
這篇文章主要介紹了Javascript中的Array數(shù)組對(duì)象,需要的朋友可以參考下2014-03-03
jquery如何實(shí)現(xiàn)錨點(diǎn)鏈接之間的平滑滾動(dòng)
實(shí)現(xiàn)錨點(diǎn)鏈接之間的平滑滾動(dòng)的方法有很多,在接下來的文章中為大家介紹下,jquery是如何實(shí)現(xiàn)的,感興趣的朋友不要錯(cuò)過2013-12-12
jQuery Ajax異步處理Json數(shù)據(jù)詳解
jquery ajax處理json數(shù)據(jù)其實(shí)與其它ajax處理數(shù)據(jù)沒什么很大的改動(dòng),我們只要簡(jiǎn)單處理一下ajax部份的dataType數(shù)據(jù)類型等于json即可解決了2013-11-11
jquery+ajax請(qǐng)求且?guī)Х祷刂档拇a
這兩天的工作內(nèi)容不多,基本是關(guān)于jquery中ajax的。之前一直都是寫的最簡(jiǎn)單的ajax請(qǐng)求,并沒關(guān)注怎么獲取ajax返回值的問題。2015-08-08
javascript原生和jquery庫(kù)實(shí)現(xiàn)iframe自適應(yīng)高度和寬度
這篇文章主要介紹了javascript原生和jquery庫(kù)實(shí)現(xiàn)iframe自適應(yīng)內(nèi)容高度和寬度,需要的朋友可以參考下2014-07-07
Jquery中$.post和$.ajax的用法小結(jié)
本節(jié)重點(diǎn)講的是jquery中調(diào)用ajax的4種方法中最常用的:$.post、和$ajax。如果讀者沒有javascript和jquery的知識(shí),或者沒有ajax的概念,那么請(qǐng)先去問問度娘,再來讀本文。2015-04-04
JQuery設(shè)置獲取下拉菜單某個(gè)選項(xiàng)的值(比較全)
這篇文章主要介紹了JQuery如何設(shè)置獲取下拉菜單某個(gè)選項(xiàng)的值(比較全),需要的朋友可以參考下2014-08-08

