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访问的资源缓存问题。

转载于:https://www.cnblogs.com/ValiancyHe/p/3420394.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值