java文件下载时页面不能操作实现

实现的原理:在父页面加一个div,div里面可以放一张正在加载的动态图,然后子页面下载文件的时候弹出父页面的div的内容,从而达到不能操作的目的。

1、父页面加个div,里面放了一张加载的动态图。

<div id="loadingDiv">
        <img alt="请稍后..." src="image/loading.gif" class="img_cla"/>
</div>

div及其动态图的样式。

<style type="text/css">
        #loadingDiv {
                background-color:grey;
                filter: alpha(opacity=50); 
                opacity: 0.1;
                position: absolute;
                margin: auto;
                width: 100%;
                height: 100%;
                z-index: 100; 
                display:none;
               }
        .img_cla {
            margin : auto;
            position : absolute;
            top : 0;
            left : 0;
            bottom : 0;
            right : 0;
        }
    </style>

2、子页面下载的时候弹出这个div的内容。

//弹出遮盖层  
window.parent.$("#loadingDiv").fadeTo(200,0.5);

var xhh = new XMLHttpRequest();

                page_url = url;//下载的url
                xhh.open("post", page_url);

                xhh.responseType = 'blob';
                    xhh.onload = function () {
                            var name = xhh.getResponseHeader("Content-disposition");
                            var filename_ = name.substring(name.lastIndexOf("="));
                            var reg = new RegExp('"','g');
                            var filename = filename_.replace(reg,'').replace('=','');
                            var blob = new Blob([xhh.response], {type: 'text/zip'});
                            var csvUrl = URL.createObjectURL(blob);
                            var link = document.createElement('a');
                            link.href = csvUrl;
                            link.download = filename;
                            link.click();
                            
                            alert("文件下载完成");
                            window.parent.$("#loadingDiv").fadeOut(200);//文件下载完成关闭弹出窗
                    };
                    xhh.send();

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w_iceh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值