最近在做一个项目,项目当中正好使用到了验证码,把以前项目当中的验证码拷过来用,发现无法用了,这个时候,就非常郁闷,然后就开始考虑是否是IE版本问题,我的电脑当中IE版本是7.0的,然后放在IE6中又尝试了下,发现IE6中,就可以使用了。
比如有如下代码:
<img id="authcode" src="servlet/authcode" border="0" style="cursor: pointer;" title="验证码" />
更改验证图片的js
function changeAuthCode(){
var authImage=document.getElementById("authcode");
authImage.src="servlet/authcode”
}
img src是采用异步方式来加载图片的,所以更改其src属性,可以达到ajax的效果。
然后突然想起是不是缓存的问题,才发现果然是此问题,IE6和IE7的缓存似乎发生了改变了,现在知道是缓存问题了,我就采用一个方式来解决方法,自动生成动态访问参数,来避免缓存问题的出现,当然只是解决缓存的方法的一种,代码如下:
function changeAuthCode(){
var authImage=document.getElementById("authcode");
authImage.src="servlet/authcode?random="+Math.random();
}
OK,缓存问题解决了,大家以后遇到此类问题都可以以此方法来避免IE缓存或ff中的缓存问题。