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

15次阅读

共计 379 个字符,预计需要花费 1 分钟才能阅读完成。

场景之一

图形验证码刷新

刷新方式:点击一次图片,就重新给 src 赋值一次,从而进行刷新。

// 这种方式,谷歌浏览器正常刷新,火狐浏览器不会刷新
ImageCodeSrc = BASE_URL + "/login/captcha.jpg"

这样写在谷歌浏览器中是正常显示的,没有问题。但是火狐就会出现不刷新的问题。

原因

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

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

解决方法

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

代码修改如下:

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

现在每次刷新都传递了不同的参数,火狐浏览器才会认为 img 的 src 发生变化,然后重新生产验证码。

正文完
 0