您的位置:首页 > Web前端 > JavaScript

js动态改变img元素src在IE无效的问题

2013-11-12 22:25 751 查看
  做了个验证码功能,需要做个点击改变验证码图片的功能,使用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访问的资源缓存问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: