首先講下這個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等
function getNewCaptcha(obj, ct){
var oImg = obj.getElementsByTagName('img')[0];
var capId = obj.getElementsByTagName('input')[0].value;
if(!capId){
capId = genCapId(obj, ct);
}
if(capId){
oImg.src = '/captcha?c=' + capId + '&r=' + Math.random();
oImg.style.display = 'block';
oImg.onerror = function(){
imgError(oImg);
}
obj.onclick = function(){
getNewCaptcha(obj);
return false;
}
}else{
imgError(oImg);
}
}
15行為新加的return false,加上以后IE6就OK了