2011-07-20 19 views
0

我有一個JavaScript和jQuery這樣的代碼:如何修復jQuery .post()函數在Internet Explorer中的問題?

$("#refreshimg").live('click',function(){ 

$.post('php/newsession.php'); 
$("#captchaimage").load('php/image_req.php'); 
return false; 

}); 

據工作到處除了IE(7,8,9)。該圖像完全重新加載在歌劇,火狐,鉻,但不是在探險家。

而且我的HTML看起來像:

<div id="captchaimage"><img src="captcha/image.php?<?php echo time(); ?>" alt="Captcha image" width="132" height="26" align="left" /></div> 

可能是有問題與.live()。員額().load() jQuery函數在資源管理器?

然後,我有我的代碼在主文件:

$("#back_btn").click(function() { 

             $.post('php/newsession.php'); 
             $("#captchaimage").load('php/image_req.php'); 

              return false; 

         }); 

再次,這個作品無處不在,除了IE瀏覽器。任何建議?

回答

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文件

<? 
    Header('Cache-Control: no-cache'); 
    Header('Pragma: no-cache'); 
    ?> 

確保上面的代碼是在第一線,因爲頭需要先設置。

這將工作。

+0

嗨,感謝但它仍然是在互聯網瀏覽器相同。我更新了關於我的JavaScript的信息,因爲我的後退按鈕有其他功能,應該重新載入驗證碼圖片。然而,在Firefox,鉻,歌劇它的作品,但在探險家不。有什麼建議? – marian

+0

它困擾我,因爲它只發生在探險家。其他瀏覽器都很好。 – marian

+0

也許有緩存的問題,你也可以在PHP中設置緩存,但我會更新這個帖子,所以你可以肯定 –