亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

解決在微軟Edge瀏覽器下無(wú)法使用createObjectURL生成的blob鏈接下載的問(wèn)題

tainzhi / 2325人閱讀

摘要:以上代碼在瀏覽器中,均可以成功下載文件,但是在中,會(huì)報(bào)錯(cuò)。如下拒絕訪問(wèn)造成以上原因是在中使用生成的是不帶域名的鏈接,如下而等瀏覽器生成的是帶域名的,如下所以在下通過(guò)標(biāo)簽的來(lái)下載是不行的。解決方法使用,代替。

我們先來(lái)看一份代碼

function download(content, filename) {
    // 字符內(nèi)容轉(zhuǎn)變成blob地址
    var blob = new Blob([content]);
    var eleLink = document.createElement("a");
    eleLink.download = filename;
    $(eleLink).css("display", "none");
    eleLink.href = URL.createObjectURL(blob);
    document.body.appendChild(eleLink);
    eleLink.click();
    document.body.removeChild(eleLink);
};

上面的代碼的意思是先用blob把字符串內(nèi)容轉(zhuǎn)變成blob鏈接,然后利用a標(biāo)簽自帶的下載功能把內(nèi)容下載下來(lái)。

以上代碼在Chrome、Firefox、Safari、360、EdgeHtml瀏覽器中,均可以成功下載文件,但是在Edge中,會(huì)報(bào)錯(cuò)。如下:

SCRIPT: 拒絕訪問(wèn)

造成以上原因是在Edge中使用Blob生成的是不帶域名的blob鏈接,如下:

blob:00F0B45-DD4E-4F4F-9B15-000368F15E20

而chrome等瀏覽器生成的是帶域名的,如下:

http://xxx.xxx.biz/86e01467-6...;/center>

所以在edge下通過(guò)a標(biāo)簽的href來(lái)下載是不行的。

解決方法

使用 window.navigator.msSaveOrOpenBlob(blob, filename),代替 window.URL.createObjectURL。

上代碼:

function download(content, filename) {
    // 字符內(nèi)容轉(zhuǎn)變成blob地址
    var blob = new Blob([content]);
    if("msSaveOrOpenBlob" in navigator){
        window.navigator.msSaveOrOpenBlob(blob, filename);
        return;
    }
    var eleLink = document.createElement("a");
    eleLink.download = filename;
    $(eleLink).css("display", "none");
    eleLink.href = URL.createObjectURL(blob);
    document.body.appendChild(eleLink);
    eleLink.click();
    document.body.removeChild(eleLink);
};

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/108565.html

相關(guān)文章

  • js實(shí)現(xiàn)txt/excel文件

    摘要:出于安全考慮,無(wú)法直接調(diào)用寫(xiě)文件到磁盤(pán),但是卻可以通過(guò)下載來(lái)變相實(shí)現(xiàn)保存功能。生成文件并下載是一種逗號(hào)分隔的表格文件格式,可以很好的被支持,由于其文件格式簡(jiǎn)單,所以經(jīng)常用在簡(jiǎn)單的表格上面。 出于安全考慮,JS無(wú)法直接調(diào)用FileAPI寫(xiě)文件到磁盤(pán),但是卻可以通過(guò)下載來(lái)變相實(shí)現(xiàn)保存功能。JS要實(shí)現(xiàn)下載功能,一般都是這么幾個(gè)過(guò)程:生成下載的URL,動(dòng)態(tài)創(chuàng)建一個(gè)A標(biāo)簽,并將其href指向生成...

    娣辯孩 評(píng)論0 收藏0
  • 關(guān)于前端實(shí)現(xiàn)文件載功能

    摘要:?jiǎn)栴}以上兩種方式,當(dāng)在下載格式,或者視頻文件時(shí),瀏覽器會(huì)直接播放該文件,而達(dá)不到直接下載的功能,此時(shí),當(dāng)下載音視頻文件時(shí)無(wú)法使用以上兩種方式。 1、通過(guò)window.open()打開(kāi)新頁(yè)面下載文件 window.open(`url`, _self) 使用場(chǎng)景:下載excel文件,后端提供接口,接口返回的是文件流,可以直接使用window.open(),最簡(jiǎn)單的方式。 優(yōu)點(diǎn):最簡(jiǎn)潔; 弊...

    Arno 評(píng)論0 收藏0
  • JS 載文件方法分享(解決圖片文件無(wú)法直接載和 IE兼容問(wèn)題)

    摘要:場(chǎng)景簡(jiǎn)介由于業(yè)務(wù)需要,經(jīng)常遇到下載各類(lèi)文件的需求,其中最頭疼的莫過(guò)于前端下載圖片了,直接給個(gè)圖片文件地址會(huì)變成直接打開(kāi)圖片,而不是彈窗提示另存為,研究了下前端實(shí)現(xiàn)文件下載最便捷的方法還是創(chuàng)建標(biāo)簽,寫(xiě)入屬性實(shí)現(xiàn)點(diǎn)擊下載,但這在瀏覽器上的實(shí)現(xiàn)又 場(chǎng)景簡(jiǎn)介 由于業(yè)務(wù)需要,經(jīng)常遇到下載各類(lèi)文件的需求,其中最頭疼的莫過(guò)于前端下載圖片了,直接給個(gè)圖片文件地址會(huì)變成直接打開(kāi)圖片,而不是彈窗提示另存為...

    awesome23 評(píng)論0 收藏0
  • 徹底理解使用JavaScript 將Json數(shù)據(jù)導(dǎo)出CSV文件

    摘要:前言將數(shù)據(jù)報(bào)表導(dǎo)出,是數(shù)據(jù)報(bào)告展示常用的附帶功能。今天我們主要講的是直接通過(guò)前端將數(shù)據(jù)導(dǎo)出的格式的文件。但其實(shí)真正的答案應(yīng)該是把相應(yīng)的數(shù)據(jù)轉(zhuǎn)換成和。若是超過(guò)瀏覽器自身限制的最大長(zhǎng)度,會(huì)導(dǎo)致下載失敗。 前言 將數(shù)據(jù)報(bào)表導(dǎo)出,是web數(shù)據(jù)報(bào)告展示常用的附帶功能。通常這種功能都是用后端開(kāi)發(fā)人員編寫(xiě)的。今天我們主要講的是直接通過(guò)前端js將數(shù)據(jù)導(dǎo)出Excel的CSV格式的文件。 原理 首先在本地...

    jsliang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<