用户登录这一块有个图片验证码,Firefox中如果用户输错密码,会提示密码错误,然后点击浏览器的后退按钮退回到这个登录界面。可是这个时候验证码的图片还是刚才那一张。

        经过测试发现,有些电脑中的Firefox点击后退的时候直接从缓存中读取html、图片等,并且不会执行window.onload。使用以下代码强制更新有时候有效,有时候没效果:

<?php
header('Pragma: no-cache');
header("Cache-Control: no-cache, no-store, max-age=0");
header("Expires: 0");
?>

        为了强制更新验证码,可以使用window.onpageshow 事件。window.onload 事件无法在后退的页面中触发,但window.onpageshow可以.代码如下:

<script type="text/javascript">
window.onpageshow = function (){
 document.getElementById('authnumimg').src='__URL__/authnum/rnd/'+new Date;
}
</script>

http://www.koyoz.com/blog/?action=show&id=221

Published in JavaScript

No Responses to “Firefox中的图片验证码缓存问题的解决方法”

Leave a Reply

请输入算式结果(看不清请点击图片)
(必须)