1. js 下載/導出 csv、excel、txt 、img等文件的方法總結
1. 調用後端介面導出文件
示例下載介面url https://gold-cdn.xitu.io/extension/0.3.9/package.crx
1.1 window.open(url)
會打開一個新窗口,開始下載後會自動關閉新窗口。Safair 下載後沒有關閉新窗口。
Chrome、IE、Safair支持,貌似火狐不支持
1.2 window.location=url
在當前窗口下載
Chrome、Safair支持
1.3 iframe
在HTML中,iframe 的屬性用src,但在JS中,只有部份瀏覽器支持修改src(讀是沒問題),真正通用的是要修改對應框架的href值。
1.4 <a href="url" download="filename">點擊鏈接下載</a>
HTML5中給a標簽增加了一個download屬性,只要有這個屬性,點擊這個鏈接時瀏覽器就不在打開鏈接指向的文件,而是改為下載,目前只有chrome、firefox、opera、Edge支持。常用此方法點擊下載圖片。
IE既不支持a標簽的download屬性也不允許js調用a 標簽的click方法。
2. 前端直接導出文件到本地
2.1 將數據轉成DataURI用<a>標簽下載
<a href="DataURI" download="filename">點擊鏈接下載</a>
Data URI Scheme
Data URI Scheme是指可以在Web 頁面中包含圖片但無需任何額外的HTTP 請求的一類URI。 Data URI Scheme一般用於將經過base64編碼的數據嵌入網頁中,從而減少請求資源的鏈接數。IE8 之前的版本都不支持 data URI scheme。
DataURI的格式:
生成DataURI的方式
1. encodeURIComponent
使用這種方式,當數據過多時,URI長度容易超出瀏覽器限制。 encodeURIComponent常用來轉碼介面參數,為了避免伺服器收到不可預知的請求,對任何用戶輸入的作為URI部分的內容都需要用encodeURIComponent進行轉義。
2. URL.createObjectURL
URL.createObjectURL的參數是File對象或者Blob對象
IE10以下不支持URL.createObjectURL
2.2 windows.navigator.msSaveBlob IE10~Edge 專用
msSaveBlob 是IE10~Edge 私有方法。
2.3 execCommand
有的資料有提到IE9可以使用execCommand方法來保存數據到本地文件,但是我自己沒有驗證過,不知道是否可行。而且MDN文檔中execCommand沒有查到SaveAs命令。這塊只是做個小記錄。
js數據直接導出/下載數據到本地到方法總結
本文轉載自:https://juejin.im/post/5cd00253518825418f6f2a8c?utm_source=gold_browser_extension
2. 如何使用js實現頁面下載功能
在按鈕上寫屬性onclick="函數名()",作用是綁定click事件如然後在腳本處寫上對應的函數即可,在函數中回跳轉到答相應的文件路徑就行。如function Click(){ window.location.href="文件的url地址";}
3. 如何下載js文件
要哪個網頁的JS,把那個網頁保存下來,然後找看源代碼,就會知道調用的JS的路徑,然後直接在IE里輸入那個路徑就可以下載了
4. 伺服器中文件名是中文,html前端怎麼下載
參考如下方法。
下載html的方法:首先點擊瀏覽器菜單欄列表,然後選擇網頁另存為點擊文件,最後選擇要保存HTML文件所在的地方即可。
linux 的文件系統是使用的 utf8 編碼,windows 的文件系統是使用的gbk編碼。
5. node.js 中,先上傳文件,上傳完成之後點擊超鏈接,跳轉到download操作,怎樣實現文件的下載
如果你的response參數是node.js的http.ServerResponse的話,你可以
fs.createReadStream('你的文件的路徑').pipe(response);
6. 如何用js實現點擊按鈕下載文件
使用javaScript原生自帶的click方法就行了。
<div id="go">用戶登錄</div>
以上專就是源代碼,我想用javascript
模擬點擊」用戶登錄「按鈕。
7. 關於JS或<a>標簽實現文件下載的功能。
使用JS實現文件下載示例(asp.net),參考如下:
<title>文件下載</title>
</head>
<script type="text/javascript" >
// 使用JS實現下載.jpg、.doc、.txt、.rar、.zip等文件的方法(參數 imgOrURL 為需要下載的圖片的URL地址)
// 使用該方法實現下載壓縮文件時會有網頁錯誤信息提示
// .doc、.rar、.zip 文件可以直接通過文件地址下載,
// 如:<a href="../Images/test.doc" >點擊下載文件</a> <a href="../Images/test.zip" >點擊下載文件</a>
function saveImageAs(imgOrURL) {
if (typeof imgOrURL == 'object')
imgOrURL = imgOrURL.src;
window.win = open (imgOrURL);
setTimeout('win.document.execCommand("SaveAs")', 500);
}
// 使用JS實現下載.txt、.doc、.txt、.rar、.zip等文件的方法(參數 fileURL 為需要下載的圖片的URL地址)
// 使用該方法實現下載壓縮文件時不會有網頁錯誤信息,但是不能使用該方法下載.jpg圖片文件
// .doc、.rar、.zip 文件可以直接通過文件地址下載,
// 如:<a href="../Images/test.doc" >點擊下載文件</a> <a href="../Images/test.zip" >點擊下載文件</a>
function savetxt(fileURL){
var fileURL=window.open (fileURL,"_blank","height=0,width=0,toolbar=no,menubar=no,scrollbars=no,resizable=on,location=no,status=no");
fileURL.document.execCommand("SaveAs");
fileURL.window.close();
fileURL.close();
}
// 功能類似savetxt方法,但是下載時初始文件名為code.txt,而不是跟目標文件名相同
function svcode(obj) {
var winname = window.open('', '_blank', 'height=1,width=1,top=200,left=300');
winname.document.open('text/html', 'replace');
winname.document.writeln(obj.value);
winname.document.execCommand('saveas','','code.txt');
winname.close();
}
</script>
<body>
<div>
<br />
<a href="javascript: void 0" onclick="savetxt('../Images/test.txt'); return false">點擊下載文件</a>
<br /><br />
<a href="javascript:savetxt('../Images/test.txt')" >點擊下載文件</a>
<br /><br />
<!-- .doc、.rar、.zip 文件可以直接通過文件所在地址下載 -->
<a href="../Images/test.doc" >點擊下載文件</a>
<br /><br />
<a href="../Images/test.zip" >點擊下載文件</a>
</div>
</body>