我有一个javascript和jquery代码,如:
$("#refreshimg").live('click',function(){
$.post('php/newsession.php');
$("#captchaimage").load('php/image_req.php');
return false;
});
除了Internet Explorer(7,8,9)外,它无处不在。图像完全重载在opera,firefox,chrome中,但不在资源管理器中。
我的HTML看起来像:
<div id="captchaimage"><img src="captcha/image.php?<?php echo time(); ?>" alt="Captcha image" width="132" height="26" align="left" /></div>
浏览器中的 .live()或 .post()或 .load() jQuery函数可能存在问题吗?< / p>
然后我在主文件的代码中有了:
$("#back_btn").click(function() {
$.post('php/newsession.php');
$("#captchaimage").load('php/image_req.php');
return false;
});
而且,除了互联网浏览器之外,这种方式无处不在。有什么建议吗?
答案 0 :(得分:2)
您正在重新加载图片,但您不是在等待请求完成。所以你能做的就是
$(document).ready(function(){
$("#refreshimg").live('click',function(){
$.ajax({url: 'php/newsession.php', type: 'post', success: function() { $("#captchaimage").load('php/image_req.php?custom_param='+(new Date()).valueOf()); } });
return false;
});
});
并在你的php文件中添加no-cache
<?
Header('Cache-Control: no-cache');
Header('Pragma: no-cache');
?>
确保上面的代码位于第一行,因为首先需要设置标题。
这将有效。