首先講下這個bug的出現的情況,頁面中有<a href="JavaScript:void(0)" onclick="document.getElementById('current').src=
‘images/001.jpg’;“>這么一個a標簽,onclick中的JS代碼就是改變id為current的img標簽的src屬性,以達到動態切換圖片的效
果。可是不幸的是:IE是動態改變的圖片的路徑,但是圖片卻不顯示出來,得右鍵“顯示圖片”才能看到改變后的圖片,不知是什
么原因,但據說是<a href="javascript:void(0)">或者<a href="#">這樣使用a標簽的話並不能阻止a標簽最后觸發一個什么行為,
導致ie6會錯誤的認為頁面刷新或者重定向了,並且中斷了當前所有連接,這樣新圖片的加載就被aborted了(不知真假),不管原
因是真是假,下面就先說下解決方案吧
簡單的解決方法:
1、<a href="javascript:void(0)" onclick="document.getElementById('current').src=‘images/001.jpg’; return false;“
>;就是在代碼后面加上return false;即可
2、把A換成SPAN等
問題代碼
1 function getNewCaptcha(obj, ct){ 2 var oImg = obj.getElementsByTagName('img')[0]; 3 var capId = obj.getElementsByTagName('input')[0].value; 4 if(!capId){ 5 capId = genCapId(obj, ct); 6 } 7 if(capId){ 8 oImg.src = '/captcha?c=' + capId + '&r=' + Math.random(); 9 oImg.style.display = 'block'; 10 oImg.onerror = function(){ 11 imgError(oImg); 12 } 13 obj.onclick = function(){ 14 getNewCaptcha(obj); 15 return false; 16 } 17 }else{ 18 imgError(oImg); 19 } 20 }
15行為新加的return false,加上以后IE6就OK了
