IE7,IE8,FireFox下,验证码不刷新的解决方法

以前一直使用IE6核心的浏览器,所以使用:
<img id="code" border="0"
width="60" alt="看不清楚,请点我刷新"
src="${url}/GenerateVerifyCodeServlet" onclick="code.src='${url}/GenerateVerifyCodeServlet?';return false;" />

来实现验证码刷新一直没问题,也没觉察到在IE8,FireFox下,验证码不刷新这个问题。
后来换了win7的系统装了IE8,使用FireFox的工具来调试JavaScript,才发现验证码不会刷新。
原因在于从ie7起,firefox的缓存机制和ie6不同:由于js指定的src与原来图片的src相同,因此从ie7起,firefox不刷新验证码。
解决办法就是在后边加个参数 Math.random():
<img id="code" border="0"
width="60" alt="看不清楚,请点我刷新"
src="${url}/GenerateVerifyCodeServlet" onclick="code.src='${url}/GenerateVerifyCodeServlet?s='+Math.random();return false;" />

由于Math.random()每次随机生成的数据不同,向code.asp传递了不同的参数,浏览器认为img的src发生了改变,因此重新生成了新的验证码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值