FireFox,IE7点击图片刷新验证码bug的解决~

现在做的这个网站用到了动态生成验证码的功能。并且点击动态生成的验证码图片要重新生成新的验证码。 

我的生成验证码的页面是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发生了改变,因此重新生成了新的验证码



TO:http://www.cnblogs.com/longer/archive/2008/01/11/1035756.html
posted @ 2008-01-14 21:50  阳光囧男  阅读(1344)  评论(4编辑  收藏  举报