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


  做了個驗證碼功能,需要做個點擊改變驗證碼圖片的功能,使用js改變img的src,代碼如下

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

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

  原回答如下:

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

$(".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是直接用的靜態圖片,雖然服務器的圖片已改,但是前台依舊顯示舊圖片,使用上面說的方法可以解決問題。套樣上面的代碼就是:

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

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


免責聲明!

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



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