jquery.form.js 实现 ajax提交表单并监听请求完成实现下载期间显示遮罩层

function doDownZipFile(){
    var options = {
        url: $("#downZip").attr("action"),
        //url: "/xmTrade/maitian/plat/fileupload/downloadZipFile.action",
        //target: "#div2",
        type: "post",
        beforeSend:function(xhr){//请求之前
            //console.info("打开遮罩层")
            $.blockUI({message: "<h1>打包下载可能比较耗时,请耐心等待.........</h1>"});
        },
        success: function (result) {
            let fileName = 'pic.zip';
            const excelBlob = result.data
            if ('msSaveOrOpenBlob' in navigator) {
                // Microsoft Edge and Microsoft Internet Explorer 10-11
                window.navigator.msSaveOrOpenBlob(excelBlob, fileName)
            } else{
                const elink = document.createElement('a') // 创建a标签
                elink.download = fileName
                elink.style.display = 'none'
                const blob = new Blob([excelBlob])
                elink.href = URL.createObjectURL(blob)
                document.body.appendChild(elink)
                elink.click()
                document.body.removeChild(elink)
            }
        }, complete: function (xhr) {//请求完成
            //console.info("关闭遮罩层")
            $.unblockUI();
        }
    };
    $("#downZip").ajaxSubmit(options);
}

需要依赖:

jquery.form.js
<script type="text/javascript" charset="utf-8"  src="<mt:basePath/>/common/js/maitian/jquery.form.js?v=0721"></script>

 

posted @ 2022-03-18 18:23  张颖辉  阅读(354)  评论(0编辑  收藏  举报