解決javascript動態改變img的src屬性圖片不顯示問題


首先講下這個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了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM