代碼實現的是點擊導出按鈕讓用戶可以下載 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;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 來實現保存功能。瀏覽器