本来,网页脚本不是我主要的工作,最近做一个小页面,才发现腻个问题……
验证码自然不是一张图片文件,而是用动态网页程序生成的带有伪随机数成分的,一般来说我们会用一个页面专门设计他
如ASP或JSP中:
<script language="javascript"> function fnRefresh() { document.pCode.src='vCode.asp'; } </script>
上面是一个java脚本,只要调用fnRefresh(); name为pCode的图片会再次生成,对ASP来说,vCode.asp应该在生成的同事保留正确的验证码
比如Session验证的话,vbscript应有一行: Session("code") = ....
然而,IE6下完全正常的东西,在IE7和IE8下完全不起作用了,一点动静都没有,现在的解决方法是加一个与上一次调用不同的变量,如
<script language="javascript"> function fnRefresh() { var d = new Date(); document.pCode.src='vCode.asp?d=' + d.toString(38); } </script>
从解决方法和问题过程看,应该是IE7/8对缓存处理的问题,当请求的目标地址一样则什么都不做,当然这只是我的想法,解决方法也不是我原创的
希望这方面的高手能把机理献出来大家学习学习,呵呵。