2014-01-24 26 views
0

我們正在使用基於Ajax的報告包,我可以使用我自己的jQuery/javascript位進行增強。其中一個我們與這個包遇到的問題是,它產生的超鏈接,看起來像:如何在使用jQuery GET之後更改文檔名稱

<a href="//server/abcdefghijklmnopqrstuvwxyz.xlsx" target="_blank"> 

由於客戶端的瀏覽器不知道如何處理.xlsx文件,就其下載到他們的本地驅動器。沒關係。問題是客戶恨這些長文件名,並希望用更短的東西(爲了論證,讓我們說「abc.xlsx」)取代它們。

我不能只是改變href,因爲服務器需要長名稱來標識返回的數據,所以我需要的是一種使用原始URL執行GET的方法,但是然後更改返回文件的名稱以便使用較短的名稱將其存儲在本地。

我知道如何使用jQuery來覆蓋超鏈接的點擊函數並使用$ .get()來獲取數據。我不知道的是一旦我得到數據來改變它的明顯的文件名,我應該做的。

+0

我應該補充說,這樣精彩的「下載=」屬性是不可用我們的客戶正在使用Safari瀏覽器。 – user2762423

回答

1

對於現代的瀏覽器,你可以使用download屬性:

<a href="//server/abcdefghijklmnopqrstuvwxyz.xlsx" download="shortName.xlsx" target="_blank"> 
+0

這是一個不錯的解決方案 – RicardoGonzales

+0

下載屬性只適用於Firefox和Chrome。 –

+0

不錯的解決方案。有點[支持有限](http://caniuse.com/#feat=download) – Jamiec

0

標籤有個屬性命名爲「下載」,你可以像使用

<a href="//server/abcdefghijklmnopqrstuvwxyz.xlsx" download="abc.xlsx">Download</a> 

jQuery的必須是這樣的

$('a').attr('download', 'abc.xlsx'); 
相關問題