火狐浏览器kaptcha验证码点击无法刷新问题解决方法

一、问题

  谷歌的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()】也能解决问题,但是你会发现点击刷新的时候没那么顺畅。加上之后就会顺畅无比。

  

三、原因

  浏览器为了让请求响应速度更快,就会将每次请求的内容缓存到客户端浏览器上(内存或硬盘中),再次访问时发现请求是一样的,便直接去调用这个缓存下来的值。

  我们用第一次写的代码,每次请求的参数都是一样的,所以浏览器就直接去调用第一次的值了,所以无法实现功能。

  解决方法只要让每次发的参数不一样就好了,想来想去也就只有时间是每一秒都不一样的。

  

  昨晚写着写着停电了,没来的及更新。

原文地址:https://www.cnblogs.com/xzhm/p/12676963.html