方式一,用 export default 統(tǒng)一導(dǎo)出
成都網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計(jì)、成都網(wǎng)站建設(shè)、微信開發(fā)、微信小程序、集團(tuán)企業(yè)網(wǎng)站設(shè)計(jì)等服務(wù)項(xiàng)目。核心團(tuán)隊(duì)均擁有互聯(lián)網(wǎng)行業(yè)多年經(jīng)驗(yàn),服務(wù)眾多知名企業(yè)客戶;涵蓋的客戶類型包括:木托盤等眾多領(lǐng)域,積累了大量豐富的經(jīng)驗(yàn),同時(shí)也獲得了客戶的一致表揚(yáng)!
方式二,給每一個(gè)要導(dǎo)出的變量和函數(shù)加上 export 關(guān)鍵字
1. 調(diào)用后端接口導(dǎo)出文件
示例下載接口url
1.1 window.open(url)
會(huì)打開一個(gè)新窗口,開始下載后會(huì)自動(dòng)關(guān)閉新窗口。Safair 下載后沒有關(guān)閉新窗口。
Chrome、IE、Safair支持,貌似火狐不支持
1.2 window.location=url
在當(dāng)前窗口下載
Chrome、Safair支持
1.3 iframe
在HTML中,iframe 的屬性用src,但在JS中,只有部份瀏覽器支持修改src(讀是沒問題),真正通用的是要修改對(duì)應(yīng)框架的href值。
1.4 a href="url" download="filename"點(diǎn)擊鏈接下載/a
HTML5中給a標(biāo)簽增加了一個(gè)download屬性,只要有這個(gè)屬性,點(diǎn)擊這個(gè)鏈接時(shí)瀏覽器就不在打開鏈接指向的文件,而是改為下載,目前只有chrome、firefox、opera、Edge支持。常用此方法點(diǎn)擊下載圖片。
IE既不支持a標(biāo)簽的download屬性也不允許js調(diào)用a 標(biāo)簽的click方法。
2. 前端直接導(dǎo)出文件到本地
2.1 將數(shù)據(jù)轉(zhuǎn)成DataURI用a標(biāo)簽下載
a href="DataURI" download="filename"點(diǎn)擊鏈接下載/a
Data URI Scheme
Data URI Scheme是指可以在Web 頁面中包含圖片但無需任何額外的HTTP 請(qǐng)求的一類URI。 Data URI Scheme一般用于將經(jīng)過base64編碼的數(shù)據(jù)嵌入網(wǎng)頁中,從而減少請(qǐng)求資源的鏈接數(shù)。IE8 之前的版本都不支持 data URI scheme。
DataURI的格式:
生成DataURI的方式
1. encodeURIComponent
使用這種方式,當(dāng)數(shù)據(jù)過多時(shí),URI長度容易超出瀏覽器限制。 encodeURIComponent常用來轉(zhuǎn)碼接口參數(shù),為了避免服務(wù)器收到不可預(yù)知的請(qǐng)求,對(duì)任何用戶輸入的作為URI部分的內(nèi)容都需要用encodeURIComponent進(jìn)行轉(zhuǎn)義。
2. URL.createObjectURL
URL.createObjectURL的參數(shù)是File對(duì)象或者Blob對(duì)象
IE10以下不支持URL.createObjectURL
2.2 windows.navigator.msSaveBlob IE10~Edge 專用
msSaveBlob 是IE10~Edge 私有方法。
2.3 execCommand
有的資料有提到IE9可以使用execCommand方法來保存數(shù)據(jù)到本地文件,但是我自己沒有驗(yàn)證過,不知道是否可行。而且MDN文檔中execCommand沒有查到SaveAs命令。這塊只是做個(gè)小記錄。
js數(shù)據(jù)直接導(dǎo)出/下載數(shù)據(jù)到本地到方法總結(jié)
本文轉(zhuǎn)載自:
前端拿到服務(wù)端數(shù)據(jù)生成 word 、excel 、pdf ,并導(dǎo)出或預(yù)覽,此處為導(dǎo)出word 參考地址
3. jszip
JSZip 是一個(gè)用于創(chuàng)建、讀取和編輯 .zip 文件的 javascript 庫,具有可愛而簡單的 API。
4. FileSaver
它可以利用新流的強(qiáng)大功能將數(shù)據(jù)異步直接保存到硬盤驅(qū)動(dòng)器應(yīng)用程序接口。這將支持進(jìn)度、取消和知道何時(shí)完成寫作
FileSaver.js 是在客戶端保存文件的解決方案,非常適合在客戶端生成文件的 Web 應(yīng)用程序
saveAs()
地址)
[img]