一、问题
谷歌的kaptcha验证码模块,在火狐浏览器和ie浏览器中,没有办法实现点击验证码图片就刷新的功能。
当我们给验证码绑定单击事件时,代码如下:
window.onload = function(){
document.getElementById("code_img").onclick = function(){
this.src = "/kaptcha.jpg";
}
}
二、解决方法,代码如下
window.onload = function(){
document.getElementById("code_img").onclick = function(){
this.src = "/kaptcha.jpg?t=" + new Date().getTime();
}
}
如果 【new Date() 】后面不加 【.getTime()】也能解决问题,但是你会发现点击刷新的时候没那么顺畅。加上之后就会顺畅无比。
三、原因
浏览器为了让请求响应速度更快,就会将每次请求的内容缓存到客户端浏览器上(内存或硬盘中),再次访问时发现请求是一样的,便直接去调用这个缓存下来的值。
我们用第一次写的代码,每次请求的参数都是一样的,所以浏览器就直接去调用第一次的值了,所以无法实现功能。
解决方法只要让每次发的参数不一样就好了,想来想去也就只有时间是每一秒都不一样的。
昨晚写着写着停电了,没来的及更新。