다음은 관심 있는 학생들이 살펴볼 수 있도록 제가 편집한 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에서 확인(코드 포함, 단순 및 조잡함, 교육 및 훈련 포함)
JS에서 JSON 데이터를 가져오기 위한 간단한 호출 정보(코드 첨부, 단순 및 조잡함) )
JS를 사용하여 POST 메서드를 사용하여 요청을 제출하는 방법(코드가 포함된 자세한 답변)
위 내용은 JS 다운로드 파일 스트림의 간단한 조작(코드 첨부)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!