火狐浏览器图形验证码刷新不生效的问题(图片src重新赋值不生效的问题)
anlondon Lv6

来源: 火狐浏览器图形验证码刷新不生效的问题(图片src重新赋值不生效的问题) - 漫漫前端路 - SegmentFault 思否

在用tp框架弄验证码的时候,写了一个简单的点击就刷新验证码的代码,但是发现火狐下不行,谷歌下却能正常使用

1
2
3
4
5
//简写
//ImageCodeSrc = BASE_URL + "/login/captcha.jpg"

<img src="{:url('/admin/verify')}" width="116" height="36" id="captcha"
onclick="this.src='{:url(\'/admin/verify\')}';">

原因

【由于指定的src与原来图片的src相同,所以在ie7、火狐浏览器下验证码不会刷新】

问题就出在上面的赋值方式,导致每次src的路径都是一样。

解决方法

加一个时间变量来让每次的src都不一样

修改如下

1
2
3
4
5
6
7
// 这种方式,谷歌和火狐都能成功刷新
//ImageCodeSrc = BASE_URL + "/login/captcha.jpg?d=" + new Date().getTime()

<img src="{:url('/admin/verify')}" width="116" height="36" id="captcha"
onclick="this.src='{:url(\'/admin/verify\')}?d='+ new Date().getTime();">


 Comments