以下是我要幫大家整理的JS下載檔案流的簡單操作,有興趣的同學可以去看看。
下載的程式碼如下:
var xhr = new XMLHttpRequest(); var formData = new FormData(); formData.append('snNumber', $("#snNumber").val()); formData.append('spec', $("#spec").val()); formData.append('startCreateDate', $("#startCreateDate").val()); formData.append('endCreateDate', $("#endCreateDate").val()); formData.append('startActiveDate', $("#startActiveDate").val()); formData.append('endActiveDate', $("#endActiveDate").val()); formData.append('supplier', $("#supplier").val()); formData.append('state', $("#cboDeviceStatus").val()); xhr.open('POST', vpms.ajaxUrl + vpms.manageUserUrl + "exportExcelDevices", true); xhr.setRequestHeader("accessToken", userInfo.accessToken); xhr.responseType = 'blob'; xhr.onload = function (e) { if (this.status == 200) { var blob = this.response; var filename = "设备导出{0}.xlsx".format(vpms.core.date.format("yyyyMMddhhmmss")); var a = document.createElement('a'); blob.type = "application/excel"; var url = createObjectURL(blob); a.href = url; a.download = filename; a.click(); window.URL.revokeObjectURL(url); } }; xhr.send(formData); });
使用Chrome下載運作良好,可IE Explorer 11版本匯出Excel按鈕無反應或彈出"需要新應用程式開啟此blob" .
改進下blob的處理方式:如下
if (window.navigator.msSaveOrOpenBlob) { navigator.msSaveBlob(blob, filename); } else { var a = document.createElement('a'); blob.type = "application/excel"; var url = createObjectURL(blob); a.href = url; a.download = filename; a.click(); window.URL.revokeObjectURL(url); }
此時IE下匯出正常:
上面是我整理給大家的JS下載檔案流的簡單操作,希望未來會對大家有幫助。
相關文章:
有關在JS 取得JSON資料簡單呼叫(程式碼附上,簡單粗暴)
#利用JS使用POST方式提交請求的方法(結合程式碼詳細解答)
以上是JS下載檔案流的簡單操作(附上程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!