久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

javascript 怎么實現(xiàn)下載功能

javascript實現(xiàn)下載功能的方法:1、通過a標(biāo)簽實現(xiàn)下載;2、通過“window.open”方法實現(xiàn)下載;3、通過“l(fā)ocation.href”方法實現(xiàn)下載;4、通過文件流轉(zhuǎn)blob對象實現(xiàn)下載功能。

javascript 怎么實現(xiàn)下載功能

本教程操作環(huán)境:Windows10系統(tǒng)、javascript1.8.5版本、Dell G3電腦。

javascript 怎么實現(xiàn)下載功能?

js實現(xiàn)文件下載功能

一、a標(biāo)簽下載

<body> <button onClick="download()">a標(biāo)簽下載</button> <script> function download(url = 'http:www.xxx.com/download?name=file.pdf', fileName = '未知文件') {       const a = document.createElement('a');       a.style.display = 'none';       a.setAttribute('target', '_blank');       /*        * download的屬性是HTML5新增的屬性        * href屬性的地址必須是非跨域的地址,如果引用的是第三方的網(wǎng)站或者說是前后端分離的項目(調(diào)用后臺的接口),這時download就會不起作用。        * 此時,如果是下載瀏覽器無法解析的文件,例如.exe,.xlsx..那么瀏覽器會自動下載,但是如果使用瀏覽器可以解析的文件,比如.txt,.png,.pdf....瀏覽器就會采取預(yù)覽模式        * 所以,對于.txt,.png,.pdf等的預(yù)覽功能我們就可以直接不設(shè)置download屬性(前提是后端響應(yīng)頭的Content-Type: application/octet-stream,如果為application/pdf瀏覽器則會判斷文件為 pdf ,自動執(zhí)行預(yù)覽的策略)        */       fileName && a.setAttribute('download', fileName);       a.href = url;       document.body.appendChild(a);       a.click();       document.body.removeChild(a);     } </script> </body>
登錄后復(fù)制

優(yōu)點:

  • 可以直接下載txt、png、pdf、exe、xlsx等類型文件

缺點:

  • a標(biāo)簽只能做get請求,所以url有長度限制

  • 無法獲取下載進(jìn)度

  • 跨域限制

  • 無法在header中攜帶token做鑒權(quán)操作

  • 無法判斷接口是否成功

  • IE兼容問題

二、window.open下載

<body>   <button onclick="download('http://www.xxx.com/download?name=file.pdf')">window.open下載</button>   <script>     function download(url) {       window.open(url, '_self');       /**        *  _blank:在新窗口顯示目標(biāo)網(wǎng)頁        *  _self:在當(dāng)前窗口顯示目標(biāo)網(wǎng)頁        *  _top:框架網(wǎng)頁中在上部窗口中顯示目標(biāo)網(wǎng)頁       /**     }   </script> </body>
登錄后復(fù)制

優(yōu)點:

  • 簡單方便

缺點:

  • 會出現(xiàn)URL長度限制問題

  • 需要注意url編碼問題

  • 無法獲取下載進(jìn)度

  • 無法在header中攜帶token做鑒權(quán)操作

  • 無法判斷接口是否成功

  • 無法直接下載瀏覽器可直接預(yù)覽的文件類型(txt、png、pdf會直接預(yù)覽)

三、location.href 下載

<body>   <button onclick="download('http://www.xxx.com/download?name=file.pdf')">location.href下載   </button>   <script>     function download(url) {       window.location.href = url;     }   </script> </body>
登錄后復(fù)制

優(yōu)點

  • 簡單方便直接

  • 可以下載大文件(G以上)

缺點

  • 會出現(xiàn)URL長度限制問題

  • 需要注意url編碼問題

  • 無法獲取下載進(jìn)度

  • 無法在header中攜帶token做鑒權(quán)操作

  • 無法直接下載瀏覽器可直接預(yù)覽的文件類型(txt、png、pdf會直接預(yù)覽)

  • 無法判斷接口是否返回成功

三、文件流轉(zhuǎn)blob對象下載

 <button onclick="download()">文件流轉(zhuǎn)blob對象下載</button>  <script>  download() {  axios({  url: 'http://www.xxx.com/download',  method: 'get',  responseType: 'blob',  }).then(res => {  const fileName = res.headers.content-disposition.split(';')[1].split('filename=')[1];  const filestream = res.data;  // 返回的文件流  // {type: 'application/vnd.ms-excel'}指定對應(yīng)文件類型為.XLS (.XLS的縮寫就為application/vnd.ms-excel)  const blob = new Blob([filestream], {type: 'application/vnd.ms-excel'});  const a = document.createElement('a');  const href = window.URL.createObjectURL(blob); // 創(chuàng)建下載連接     a.href = href;     a.download = decodeURL(fileName );     document.body.appendChild(a);         a.click();         document.body.removeChild(a); // 下載完移除元素         window.URL.revokeObjectURL(href); // 釋放掉blob對象  })  }  </script>
登錄后復(fù)制

優(yōu)點:

  • 可以下載txt、png、pdf等類型文件

  • 可以在header中攜帶token做鑒權(quán)操作

  • 可以獲取文件下載進(jìn)度

  • 可以判斷接口是否返回成功

缺點:

  • 兼容性問題,IE10以下不可用,注意Safari瀏覽器,官網(wǎng)給出 Safari has a serious issue with blobs that are of the type application/octet-stream

  • 將后端返回的文件流全部獲取后才會下載

推薦學(xué)習(xí):《JavaScript視頻教程》

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
狠狠爱成人网| 国产一区久久| 在线天堂资源www在线污| 精品一区二区三区中文字幕在线| 国产亚洲精aa在线看| 国产精品videosex极品| 精品久久久久久久| 美女久久99| 国内精品99| 日韩精品成人| 久草精品视频| 中文字幕在线视频网站| 91综合网人人| 久久久影院免费| 中文字幕日本一区二区| 国产精品久久久久久久久久白浆| 欧美黄页在线免费观看| 国产精品高颜值在线观看| 九色porny丨国产首页在线| 国产亚洲精品v| 国产精品资源| 婷婷色综合网| 日韩精品视频在线看| 嫩草伊人久久精品少妇av杨幂| 久久久久黄色| 国产婷婷精品| 国产一区二区三区四区二区| 丝袜诱惑制服诱惑色一区在线观看| 综合激情一区| 国产激情综合| 视频一区中文| 国产精品手机在线播放| 亚洲一区资源| 国产欧美久久一区二区三区| 美女高潮久久久| 欧美女激情福利| 国产精品久久国产愉拍| jiujiure精品视频播放| 91精品国产自产观看在线| 美女网站一区| 亚洲免费婷婷| 高清av一区| 欧美特黄一级大片| 狠狠爱www人成狠狠爱综合网| 国产精品亚洲人成在99www| 亚洲香蕉网站| 国产福利资源一区| 最新国产精品久久久| 91视频久久| 日韩av不卡一区二区| 久久亚洲精品中文字幕蜜潮电影| 青草综合视频| 99riav1国产精品视频| 麻豆国产精品一区二区三区| 久久亚洲二区| 久久国产中文字幕| 久久精品理论片| 日韩精品福利一区二区三区| 日韩免费看片| 老司机精品视频在线播放| 日韩影片在线观看| 99香蕉国产精品偷在线观看| 福利片在线一区二区| 日本少妇精品亚洲第一区| 午夜欧美在线| 亚洲播播91| 成人精品高清在线视频| 日本午夜精品久久久| 视频一区视频二区在线观看| 久久精品青草| 精品免费av在线| 青青青国产精品| 国产精品日韩欧美一区| 成人一区不卡| 电影91久久久| 日韩精品视频网| 日韩精品一级中文字幕精品视频免费观看 | 无码日韩精品一区二区免费| 国产精品美女久久久| se01亚洲视频 | 国产精品字幕| 91亚洲一区| 国产suv精品一区二区四区视频 | 欧美a一区二区| 日韩精品三级| 欧美一区在线观看视频| 亚洲日产国产精品| 在线亚洲国产精品网站| 亚洲一区中文| 今天的高清视频免费播放成人| 午夜影院一区| 亚洲二区精品| 日韩一区二区久久| 免费黄网站欧美| 久久国产精品亚洲77777| 亚洲电影在线一区二区三区| 欧美日韩精品一本二本三本| 91精品福利| 99国产精品视频免费观看一公开| 亚洲大全视频| 久久福利一区| 婷婷亚洲成人| 亚洲精品国产日韩| 日韩精品一区二区三区中文在线 | 亚洲国产日韩欧美在线| 日韩午夜在线| 亚洲开心激情| 国产欧美亚洲一区| 高清久久精品| 红桃视频国产精品| 亚洲在线网站| 国产日韩视频在线| 精品一区二区三区四区五区| 亚洲黄色免费av| 蜜桃tv一区二区三区| 久久午夜影视| 国产精品xxxav免费视频| 国产精品精品国产一区二区| 三级小说欧洲区亚洲区| 国产视频一区三区| 久久国产日韩欧美精品| 精品视频免费| 91精品国产乱码久久久久久久| 欧美特黄一区| 国产视频一区二区在线播放| 美女久久久精品| 亚洲一本视频| 少妇高潮一区二区三区99| 九九九精品视频| 日韩视频一区| 国产精品美女在线观看直播| | 欧美三区不卡| 日韩在线中文| 亚洲日韩中文字幕一区| 精品国产中文字幕第一页| 欧美日韩精品一本二本三本| 国产精品亚洲成在人线| 午夜久久中文| 亚洲精品乱码久久久久久蜜桃麻豆| 麻豆国产精品一区二区三区| 亚州av乱码久久精品蜜桃| 国产精品欧美日韩一区| 激情综合激情| 国产精品mm| 好看的亚洲午夜视频在线| 国产高清精品二区| 亚洲专区一区| 国产一区三区在线播放| 免费在线视频一区| 亚洲深夜视频| 日本视频在线一区| 欧美jjzz| 久久国产人妖系列| 激情综合激情| 激情久久99| 日本亚洲不卡| 久久中文字幕av| 久久99偷拍| 亚洲小说春色综合另类电影| 欧美成人基地| 国产福利一区二区三区在线播放| 国产高清一区二区| 国产91欧美| 国产精品日本一区二区三区在线| 在线综合亚洲| 日韩中文影院| 国产精品久久久久久久久免费高清| 欧美日韩国产亚洲一区| 精品黄色一级片| 国产私拍福利精品视频二区| 羞羞答答国产精品www一本 | 日韩综合精品| 免费在线播放第一区高清av| 日韩一区二区三区免费视频| 狠狠干综合网| 亚洲午夜av| 亚洲黄色免费av| 成人午夜毛片| 麻豆中文一区二区| 国产毛片精品| 奇米狠狠一区二区三区| 鲁大师成人一区二区三区| 99成人在线视频| 日韩深夜视频| 国产91欧美| 国产一区二区色噜噜| 国产精品99久久免费观看| 日韩欧美另类中文字幕| 在线国产精品一区| 鲁大师影院一区二区三区| 999精品在线| 成人免费电影网址| 日韩精品水蜜桃| 久久久水蜜桃av免费网站| 国产日韩电影| 九色porny丨国产首页在线| 不卡福利视频| 成人日韩在线| 亚洲天堂免费电影|