浏览 6394 次
锁定老帖子 主题:IE7验证码:“看不清,换一个”
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-10-27
最后修改:2008-11-18
以前写的登陆页面的验证码“看不清,换一个”的操作脚本在ie6下跑得很正常,在ie7下执行不了。 原程序如下: js: function changerand(obj){ obj.src="image.jsp"; }
html: <img src="image.jsp" id=randimg> <a href="#" onclick="changerand(document.getElementById('randimg'))">看不清,换一个</a>
google了一下也没有太好的解决办法,百思不得其解。 后来参照了php的一段验证码脚本,仅仅在changerand中稍稍改动即可。 修改后:
function changerand(obj){ obj.src="image.jsp"+Math.random(); }
问题解决了,但没太搞明白ie7为什么会这样,记在这里,仅供参考。
//2008-11-06引用自http://www.blogjava.net/nickey/archive/2005/11/13/19606.html 关于随机参数,指的是URL请求中带有一个随机参数。 这个参数,可以是当前时间,或者随机数。 用来避开浏 览器的缓存 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-10-27
如果是这样解决的,应该是缓存在作怪。
但是ie没理由缓存啊 |
|
返回顶楼 | |
发表时间:2008-10-28
缓存啊!!!按照路径会做缓存的!
|
|
返回顶楼 | |
发表时间:2008-11-08
最后修改:2008-11-08
这样写, 你其实是没有错的, 但是, 有个致命的问题是, 你的服务器一端的控制问题, 不能怪IE的BUG。 我弄个我写的例子给你看吧:
HttpServletResponse response = .... response.setContentType("image/jpeg"); response.setHeader("Expires", "Sat, 16 Jan 1980 12:00:00 GMT"); response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate"); response.addHeader("Cache-Control", "post-check=0, pre-check=0"); response.setHeader("Pragma", "no-cache"); 控制cache的头, 才能解决问题。 在输出图片之前, 做我上面的一些代码, 就可以了。 |
|
返回顶楼 | |
发表时间:2008-11-11
sdh5724 写道 这样写, 你其实是没有错的, 但是, 有个致命的问题是, 你的服务器一端的控制问题, 不能怪IE的BUG。 我弄个我写的例子给你看吧: HttpServletResponse response = .... response.setContentType("image/jpeg"); response.setHeader("Expires", "Sat, 16 Jan 1980 12:00:00 GMT"); response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate"); response.addHeader("Cache-Control", "post-check=0, pre-check=0"); response.setHeader("Pragma", "no-cache"); 控制cache的头, 才能解决问题。 在输出图片之前, 做我上面的一些代码, 就可以了。 很受用!!! |
|
返回顶楼 | |
发表时间:2009-03-16
缓存,
你的写法有问题吧。应该由 obj.src="image.jsp"+Math.random(); 改为 obj.src="image.jsp?dt="+Math.random(); 欺骗IE是不同的URL,强制刷新 |
|
返回顶楼 | |