2012-07-26 16 views
2

我有一個頁面,用戶可以在窗體上選擇一些選項,表單提交事件通過.AJAX將這些數據發佈到PHP頁面,並將文件寫入服務器,PHP頁面然後返回文件名,我使用jquery.Download提示用戶保存文件。JQuery AJAX文件在IE8中下載,顯示黃色安全欄

這在FF和Chrome中很完美,但我在IE中收到了令人恐懼的黃色信息欄。更糟糕的是,如果我的用戶從信息欄中選擇「仍然下載」,則頁面只會刷新,而不會實際提示用戶下載文件。

我已經做了一些搜索Stackoverflow,並沒有出現這個問題已被回答。

回答

2

由於用戶啓動的瀏覽器事件與程序啓動的瀏覽器事件之間的定義不同,您可以看到這一點。認爲被解僱作爲jQuery的那個事件綁定到操作的結果一般事件,即

$("#myElement").click(
    function() { 
     $.ajax(...); 
    } 
); 

通過編程的方式開始試圖通過一個jQuery .click()事件綁定到打開一個新標籤時,你會看到這個相同的症狀您可點擊的鏈接等

一個可能的解決辦法,以您的問題是使用在你的HTML代碼的事件屬性調用一個JS函數,其中的AJAX調用即

<script type="text/javascript"> 

function submitAndDownload() { 
    $.ajax(...); //form submit 
    $.ajax(...); //download file 
} 

</script> 

<button onClick="submitAndDownload();"></button> 

這樣的瀏覽器發出C該事件是用戶發起的。您當然可以將您的下載ajax請求嵌套在表單提交ajax請求的正文中。這將取決於你需要做什麼。不過,如果你在套接字中嵌入了其他的Ajax調用,那麼你可能會發現套接字中有一些不一致的情況。

+0

謝謝,這真的很有幫助。那麼你的意思是實際上把我的提交按鈕上的onClick與使用提交事件處理程序? – 2012-07-26 23:52:12

+1

您的ajax調用究竟是如何啓動的?你能提供一些代碼嗎?這種方法將取決於你需要做什麼......即事件序列等。 – travega 2012-07-26 23:55:00

+0

用代碼更新了原來的帖子,謝謝! – 2012-07-27 00:00:19