JS建立html瀏覽器匯出下載的方法

來源:互聯網
上載者:User
本文主要和大家分享JS建立html瀏覽器匯出下載的方法,主要用的html5的download屬性和Blob,希望能協助到大家。

URL.createObjectURL

URL.createObjectURL()方法會根據傳入的參數建立一個指向該參數對象的URL. 這個URL的生命僅存在於它被建立的這個文檔裡. 新的對象URL指向執行的File對象或者是Blob對象.

objectURL = URL.createObjectURL(blob || file);1

File對象或者Blob對象
這裡大概說下File對象和Blob對象:
File對象,就是一個檔案,比如我用input type=”file”標籤來上傳檔案,那麼裡面的每個檔案都是一個File對象.
Blob對象,就是位元據,比如通過new Blob()建立的對象就是Blob對象.又比如,在XMLHttpRequest裡,如果指定responseType為blob,那麼得到的傳回值也是一個blob對象.
*注意
每次調用createObjectURL的時候,一個新的URL對象就被建立了.即使你已經為同一個檔案建立過一個URL. 如果你不再需要這個對象,要釋放它,需要使用URL.revokeObjectURL()方法. 當頁面被關閉,瀏覽器會自動釋放它,但是為了最佳效能和記憶體使用量,當確保不再用得到它的時候,就應該釋放它.

URL.revokeObjectURL

URL.revokeObjectURL()方法會釋放一個通過URL.createObjectURL()建立的對象URL. 當你要已經用過了這個對象URL,然後要讓瀏覽器知道這個URL已經不再需要指向對應的檔案的時候,就需要調用這個方法.
具體的意思就是說,一個對象URL,使用這個url是可以訪問到指定的檔案的,但是我可能只需要訪問一次,一旦已經訪問到了,這個對象URL就不再需要了,就被釋放掉,被釋放掉以後,這個對象URL就不再指向指定的檔案了.
比如一張圖片,我建立了一個對象URL,然後通過這個對象URL,我頁面裡載入了這張圖.既然已經被載入,並且不需要再次載入這張圖,那我就把這個對象URL釋放,然後這個URL就不再指向這張圖了.

window.URL.revokeObjectURL(objectURL);1

下載檔案方法

var funDownload = function (content, filename) {    var eleLink = document.createElement('a');    eleLink.download = filename;    eleLink.style.display = 'none';    // 字元內容轉變成blob地址    var blob = new Blob([content]);    eleLink.href = URL.createObjectURL(blob);    // 觸發點擊    document.body.appendChild(eleLink);    eleLink.click();    // 然後移除    document.body.removeChild(eleLink);};

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.