更新:
時間肯定會改變一切;-)當我第一次回答了這個問題IE8可用最新的IE瀏覽器(2010年11月),因此,沒有跨瀏覽器的方式沒有做到這一點到服務器的往返旅程,或使用需要Flash的工具。
@Zectburno's answer會給你你現在需要的東西,但是對於歷史上下文了解哪些IE瀏覽器支持哪些功能。
- BTOA()在IE8和IE9
- 斑點是未定義在IE10 +
確保在您需要支持的瀏覽器,以測試是否可用。儘管其他答案中的Blob示例應該可以在IE10 +中工作,但對於我而言,只需單擊鏈接(瀏覽器什麼都不做,不會出錯)......只有當我右鍵單擊並將目標另存爲「file.csv」時導航到文件並雙擊它可以打開文件。
Test both approaches (btoa/Blob) in this JSFiddle. (這裏的代碼)
<!doctype html>
<html>
<head>
</head>
<body>
<a id="a" target="_blank">Download CSV (via btoa)</a>
<script>
var csv = "a,b,c\n1,2,3\n";
var a = document.getElementById("a");
a.href = "data:text/csv;base64," + btoa(csv);
</script>
<hr/>
<a id="a2" download="Download.csv" type="text/csv">Download CSV (via Blob)</a>
<script>
var csv = "a,b,c\n1,2,3\n";
var data = new Blob([csv]);
var a2 = document.getElementById("a2");
a2.href = URL.createObjectURL(data);
</script>
</body>
</html>
原來的答案:
我不認爲有可用於該選項。
我只是調整您的代碼,以便如果在用戶系統上檢測到Flash 10+(93% saturation as of September 2009),請提供Downloadify選項,否則回退到服務器端請求。
可以dowloadify調用從JavaScript?創建一個閃光燈按鈕來適應我的設計會很棘手。 – 2014-04-22 12:19:48
@TomášZato是的,它可以通過JavaScript調用:https://github.com/dcneiner/Downloadify – scunliffe 2014-04-22 12:39:27
一個不明白我的問題是如何回答的。我讀過「文檔」,但是我的問題是如果下載可以從JavaScript觸發。不幸的是[不可能](https://github.com/dcneiner/Downloadify/issues/20) - 必須單擊Downloadify按鈕。 – 2014-04-22 12:46:24