2010-09-05 40 views
15

我需要用javascript動態啓動下載。我看到人們如何通過執行類似用javascript開始下載

window.open("some url", "Download"); 

做到這一點,但我需要做的是在不改變當前頁面的URL(而不是使用框架,如果我能幫助它,或者動態創建和銷燬框架)。任何人都知道如何做到這一點?

+0

window.open不會更改當前頁面的url。它會打開一個新頁面(除非彈出窗口阻止程序停止它)。 – Zafer 2010-09-05 04:06:00

+0

在Chrome中它什麼都不做,我也需要一個跨瀏覽器的方法。 – kzip 2010-09-05 04:18:44

+0

哦,其實我錯了,Chrome甚至沒有告訴我它阻止了彈出窗口。謝謝。 – kzip 2010-09-05 04:20:23

回答

29

你不需要window.open()。這很簡單醜陋,容易出現popupblockers(你無法控制客戶端)。如果請求的下載URL的響應頭包含Content-Disposition: attachment,則只需window.location就足夠了。這不會改變瀏覽器地址欄中的當前URL或當前頁面,而只是彈出一個另存爲對話。

E.g.

window.location = 'http://download.winzip.com/winzip145.exe'; 
0

您現在處於正確的軌道上,您必須強制瀏覽器請求新的「頁面」,即使該頁面是文件。

你可能想嘗試的window.open()第二個參數的關鍵字之一 - 像_blank - 必須有某種辦法讓在Chrome中打開新的URL ...