最近项目的登录页面有一个获取图形验证码的功能,我一开始的写法是,每点击一次,就重新给src赋值,这种写法在谷歌浏览器下用着很nice,没什么毛病,但是火狐就不行了,下面的解释来自一位网友,让我豁然开朗
【上网查了下资料,发现别人也碰到过类似的问题,初步猜测是ie7,firefox的缓存机制和ie6不同。由于js指定的src与原来图片的src相同,因此ie7,firefox不刷新验证码。】
所以问题出在地址一致都是一样的,解决办法是,加一个时间来改变一样的地址
document.getElementById('tuxingyzm').src='../flyray-merchant-web/captcha.jpg?t='+ new Date() ;
由于传递了不同的参数,浏览器认为img的src发生了改变,因此重新生成了新的验证码。
2023年10月8号补充下,不是不刷新验证码,是浏览器有缓存机制,第一遍加载出来的路径,第一遍还是一样的时候就不会刷新,会有缓存,所以你加一个时间戳,每次时间戳改变浏览器就会去重新请求这个路径,这样就做到了刷新的效果