Javascript 導出數據爲文本文件

代碼實現的是點擊導出按鈕讓用戶可以下載 test.txt 文件:web

<textarea id="ta_text"></textarea>
<button type="button" onclick="saveFile()">導出</button>
<script>

    function exportTxt(fileName, data) {
        if (navigator.userAgent.indexOf("Trident") &amp;amp;gt;= 0) {
            try {
                // IE 10 或以上
                var fileObj = new Blob([data]);
                navigator.msSaveBlob(fileObj, fileName);
            } catch (ex) {
                // IE 9 或如下
                var winSave = window.open();
                winSave.document.open("text", "utf-8");
                winSave.document.write(data);
                winSave.document.execCommand("SaveAs", true, fileName);
                winSave.close();
            }
        } else {
            // Webkit
            var urlObject = window.URL || window.webkitURL || window;
            var export_blob = new Blob([data]);
            var save_link = document.createElement("a");
            save_link.href = urlObject.createObjectURL(export_blob);
            save_link.download = fileName;
            save_link.click();
        }
    }

    function saveFile() {
        var text = document.querySelector("#ta_text").value;
        exportTxt("test.txt", text);
    }

</script>

webkit 內核的瀏覽器會將一個連接到 blob 對象的 uri 視做下載處理,而在 IE 中彷佛不能這樣,因此須要單獨調用 navigator.msSaveBlob 方法,而低版本的 IE 甚至不能支持 blob 對象,須要使用瀏覽器提供的特定 API 來實現保存功能。瀏覽器

相關文章
相關標籤/搜索