龙的天空

天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,曾益其所不能。

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  44 随笔 :: 0 文章 :: 97 评论 :: 4 Trackbacks
     现在做的这个网站用到了动态生成验证码的功能。并且点击动态生成的验证码图片要重新生成新的验证码。 
     我的生成验证码的页面是CheckCode.aspx,则在需要验证码的页面可以这么调用 
     <img id="checkcode" src="CheckCode.aspx" alt="看不清点击刷新" onclick="ReloadCode()" />
     我这里的ReloadCode函数是重新生成验证码的javascript函数,其内容如下(我使用了jquery):
    
function ReloadCode()
{
   
var checkcode = $("#checkcode").get(0);
   checkcode.src 
= "CheckCode.aspx";
}
    测试的时候发现,在ie6下点击验证码图片可以生成新的验证码,但是在ie7,firefox下点击图片的时候都没有反应。
    上网查了下资料,发现别人也碰到过类似的问题,初步猜测是ie7,firefox的缓存机制和ie6不同。由于js指定的src与原来图片的src相同,因此ie7,firefox不刷新验证码。解决的方法是为CheckCode.aspx页面传递一个参数就可以了。代码如下:
  
function ReloadCode()
{
   
var checkcode = $("#checkcode").get(0);
   
var dt = new Date();
   checkcode.src 
= "CheckCode.aspx?t=" + dt;
}

    由于传递了不同的参数,浏览器认为img的src发生了改变,因此重新生成了新的验证码。
posted on 2008-01-11 21:17 John Liu 阅读(619) 评论(4)  编辑 收藏 所属分类: 网页制作技术

评论

再简单不过的问题了,为了保证验证不被缓存,基本上都会加上随机内容的参数,并非BUG
  回复  引用    

#2楼  2008-02-01 10:33 mycityhot      
缓存
  回复  引用  查看    

怎么说呢..完全可以用js实现啊
var rnd=new Random();
图片的url+="&rnd"+rnd;
  回复  引用    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  博客园首页

  新闻频道

  社区

  小组

  博问

  网摘

  闪存

  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
成果网帮您增加网站收入


相关链接: