用asp、和aspx做的图片验证码<img src="/code.asp" onClick="this.src='/code.asp'" alt="Click here to refresh" style="cursor:hand;">在IE6下点击时能够刷新,工作正常。
但是在FireFox、IE7下点击却无法刷新。原因在于ie7,firefox的缓存机制和ie6不同:由于js指定的src与原来图片的src相同,因此ie7,firefox不刷新验证码。
解决办法就是在后边加个参数 Math.random():
<img src="/code.asp" onClick="this.src='/code.asp?s='+Math.random()" alt="Click here to refresh" style="cursor:hand;">
由于Math.random()每次随机生成的数据不同,向code.asp传递了不同的参数,浏览器认为img的src发生了改变,因此重新生成了新的验证码。