function loadFile(fileName, content){ var aLink = document.createElement('a'); var blob = new Blob([content], { type: 'text/plain' }); var evt = new Event('click'); aLink.download = fileName; aLink.href = URL.createObjectURL(blob); aLink.click(); URL.revokeObjectURL(blob); }
描述下代碼內容:瀏覽器
a
標籤Blob
構造函數將文件內容編譯爲指定格式的二進制download
屬性設置文件名稱Blob
對象做爲 Url 也賦給 a 標籤,Blob
對象是一個字節序列。擁有 size 和 type 等屬性。初始化 Blob
接受的內容類型。安全
URL.createObjectURL()
靜態方法會建立一個 DOMString
,它的 URL 表示參數中的對象。這個 URL 的生命週期和建立它的窗口中的 document
綁定。這個新的URL 對象表示着指定的 File
對象或者 Blob
對象。app
DOMString:
一個UTF-16字符串,JavaScript 正是使用了這種編碼的字符串,因此 DOMString 直接被映射爲(is mapped directly to)函數
在每次調用 createObjectURL()
方法時,都會建立一個新的 URL
對象,即便你已經用相同的對象做爲參數建立過。當再也不須要這些 URL
對象時,每一個對象必須經過調用 URL.revokeObjectURL()
方法來釋放。瀏覽器會在文檔退出的時候自動釋放它們,可是爲了得到最佳性能和內存使用情況,你應該在安全的時機主動釋放掉它們。性能
createEvent
的事件必需要使用 initEvent
,可是這種方式已經不被推薦。編碼