js動態改變img元素src在IE無效的問題

  作了個驗證碼功能,須要作個點擊改變驗證碼圖片的功能,使用js改變img的src,代碼以下javascript

$("#cerificationCodeImg").attr("src","common/image.jsp");

  image.jsp是用來生成驗證碼圖片的,chrome下沒有問題,IE下圖片沒有刷新,FF下也沒有。搜索答案,在stackoverflow上找到了答案。連接以下:Dynamically change image src using Jquery not working in IE and firefoxjava

  原回答以下:jquery

  IE caching all GET request, so add a timestamp to your request URL e.g :chrome

$(".linkEmail").click(function () {

        //Load captcha image

        $('.imgCaptcha').attr('src', '/Custom/AppCode/Utilities/CaptchaGenerator.ashx?'+new Date().getTime());


        $('#emailModal').modal();

    });

  大意是IE下會緩存什麼的云云,沒必要深究,在後面把時間傳進去就OK了,那個人js代碼就相應改爲了緩存

	$("#cerificationCodeImg").attr("src","common/image.jsp?"+new Date().getTime());

 OK,在IE和FF都正常工做了。服務器

補記:後來一位同窗碰到相似的問題,但他的狀況並非去請求頁面,只是用js動態的改變圖片的src,src是直接用的靜態圖片,雖然服務器的圖片已改,可是前臺依舊顯示舊圖片,使用上面說的方法能夠解決問題。套樣上面的代碼就是:jsp

$("#cerificationCodeImg").attr("src","common/image.jpg?"+new Date().getTime());

  其實jsp頁面和靜態圖片都屬於url資源,據此推測,加timestamp的方法適用於任何使用url訪問的資源緩存問題。url

相關文章
相關標籤/搜索