我有一個按鈕,點擊時需要使用POST提交表單來下載文件。 [編輯澄清:正在下載的文件是通過基於隱藏表單中的值(我通過jQuery更改,取決於單擊的按鈕)中的值通過PHP腳本動態生成的。有問題的文件是一個Excel文件。如果可能,我不希望使用GET,因爲我不希望人們直接鏈接到文件。]如何在下載文件時顯示並刪除加載的.gif文件?
我無法使用$.post
來提交表單,因爲這不起作用,因爲我願意。雖然提交發生得很好,但它不會觸發瀏覽器中的下載對話框。據我瞭解,該文件的內容現在存在於JavaScript中,並且沒有辦法(我知道)允許您將其從JavaScript下載到瀏覽器。所以,在這種特殊情況下,其他解決方案(例如How do I use jQuery or Ajax to swap the background image after a form is submitted?)將不起作用。
解決方案I found將使用$("#someform").submit();
來點擊按鈕時觸發隱藏表單。頁面不會重新加載,屏幕上會彈出保存對話框。
示例代碼:
$("#button").click(
function() {
$(this).removeClass("button");
$(this).addClass("loading");
$("#form").submit();
}
);
然而,因爲它可能需要幾秒鐘,以生成該文件,我想顯示加載動畫GIF給用戶。這現在提出了我可以顯示動畫的問題,但是我無法在提交表單後刪除動畫。
如果使用這種方法無法完成,有人可以提出更好的解決方案嗎?
實際上,如果您使用上述鏈接中的方法進行測試,則頁面不會重新加載。 –