2015-03-13 24 views
1

我有這個非常簡單的HTML:導航到數據URI在IE

<a download="red.png" 
    href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="> 
    Static 
</a> 

在Chrome或Firefox,它的下載red.png預期。

在IE中,它導航到錯誤頁面。在JSFiddle上查看。

現在,我知道在IE中不支持download屬性,這很好。我仍然期望它導航到「文件」,允許用戶保存它。相反,它是導航到錯誤頁面。

有沒有辦法解決這個問題?數據URI由客戶端生成;在服務器上創建文件不是一個選項。


編輯:MSDN says

出於安全原因,數據URI僅限於下載 資源。數據URI不能用於導航,編寫腳本,或者用於填充框架或iframe元素。

......我讀爲「儘管其他瀏覽器都支持這個,但我們不知道該怎麼做」。因此,仍然在尋找解決方法來下載客戶端上生成的文件。

+1

看起來類似於http://stackoverflow.com/questions/22665111/download-img-throught-hyperlink-a-in-ie11-using-javascript。檢查答案 – 2015-03-13 20:36:13

+0

感謝@羅曼,這絕對有幫助。我討厭使用特定於IE的代碼,但這可能是唯一的解決方案。 – 2015-03-13 20:56:33

回答

2

由於IE不支持導航到數據URI,也不支持download屬性,因此解決方案是使用navigator.msSaveBlob生成文件並提示用戶保存該文件。

積分爲this answer