网页下载文件期间如何防止用户对网页进行其他操作


Posted in Javascript onJune 27, 2014

做网页下载文件时,有时候文件过大,生成文件需要一段时间。这个时候要防止用户对网页进行其他操作,有种方法就是使用一个div覆盖在网页上,将网页锁住。

function lockScreen() 
{ 
sWidth=$(window).width(); 
sHeight=$(window).height(); 
var bgObj=document.createElement("div"); 
bgObj.setAttribute('id','bgDiv'); 
bgObj.style.position="absolute"; 
bgObj.style.top="0"; 
bgObj.style.background="#CCCCCC"; 
bgObj.style.filter="progid:DXImageTransform.Microsoft.Alpha(style=3,opacity=25,finishOpacity=75"; 
bgObj.style.opacity="0.6"; 
bgObj.style.left="0"; 
bgObj.style.width=sWidth + "px"; 
bgObj.style.height=sHeight + "px"; 
if(sWidth < 860) 
{ 
bgObj.style.width="860px"; 
} 
bgObj.style.zIndex = "10000"; 
document.body.appendChild(bgObj); 
}

使用如上函数可以锁住页面防止多次操作,要直到下载框出现时取消锁屏。

在服务器端(cgi)中设置cookie:

<pre name="code" class="cpp">char *configDownloadToken = "finishedDownloadFile"; 
printf("Content-Type: application/octet-stream\nContent-Length: %ld\n", s.st_size); 
printf( "Set-Cookie:configDownloadToken=%s; path=/; \r\n ",configDownloadToken); 
printf("Content-Disposition: attachment; filename=\"%s\"\n", strrchr(filename,'/') + 1); 
printf("Connection: close\n\n");

在客户端(html、js)导入插件jquery.cookie.js,在html文件中要包含此插件,js文件中定时获取cookie

var configDownloadCheckTimer; 
$(document).ready(function () { 
configDownloadCheckTimer = window.setInterval(function() { 
var cookieValue = $.cookie('configDownloadToken'); 
if (cookieValue === "finishedDownloadFile") 
{ 
refreshPage(); 
finishDownload(); 
} 
}, 1000); 
}); 

function finishDownload() { 
window.clearInterval(configDownloadCheckTimer); 
$.removeCookie('configDownloadToken'); //clears this cookie value 
}

这样就可以了。

Javascript 相关文章推荐
jquery动画4.升级版遮罩效果的图片走廊--带自动运行效果
Aug 24 Javascript
node.js中的fs.ftruncate方法使用说明
Dec 15 Javascript
Windows系统下安装Node.js的步骤图文详解
Nov 15 Javascript
纯js三维数组实现三级联动效果
Feb 07 Javascript
bootstrap modal+gridview实现弹出框效果
Aug 15 Javascript
浅谈vuex 闲置状态重置方案
Jan 04 Javascript
vue-cli 3.0 版本与3.0以下版本在搭建项目时的区别详解
Dec 11 Javascript
微信小程序实现顶部导航特效
Jan 28 Javascript
PHP实现基于Redis的MessageQueue队列封装操作示例
Feb 02 Javascript
使用vue中的混入mixin优化表单验证插件问题
Jul 02 Javascript
bootstrap table实现横向合并与纵向合并
Jul 18 Javascript
浅谈Vue 自动化部署打包上线
Jun 14 Javascript
jQuery+ajax实现鼠标单击修改内容的方法
Jun 27 #Javascript
node.js实现逐行读取文件内容的代码
Jun 27 #Javascript
javascript实现的HashMap类代码
Jun 27 #Javascript
js图片滚动效果时间可随意设定当鼠标移上去时停止
Jun 26 #Javascript
Javascript字符串对象的常用方法简明版
Jun 26 #Javascript
fixedBox固定div漂浮代码支持ie6以上大部分主流浏览器
Jun 26 #Javascript
js实现回放拖拽轨迹从过程上进行分析
Jun 26 #Javascript
You might like
全国FM电台频率大全 - 31 新疆维吾尔族自治区
2020/03/11 无线电
服务器变量 $_SERVER 的深入解析
2013/07/02 PHP
PHP面向对象教程之自定义类
2014/06/10 PHP
php中使用websocket详解
2016/09/23 PHP
Laravel5.1框架路由分组用法实例分析
2020/01/04 PHP
Chrome中模态对话框showModalDialog返回值问题的解决方法
2010/05/25 Javascript
javascript 获取iframe里页面中元素值的方法
2014/02/17 Javascript
网站繁简切换的JS遇到页面卡死的解决方法
2014/03/12 Javascript
js由下向上不断上升冒气泡效果实例
2015/05/07 Javascript
表单验证插件Validation应用的实例讲解
2015/10/10 Javascript
javascript模块化简单解析
2016/04/07 Javascript
JS区分浏览器页面是刷新还是关闭
2016/04/17 Javascript
jsp 网站引入外部css或者js失效问题解决
2016/10/31 Javascript
纯javaScript、jQuery实现个性化图片轮播【推荐】
2017/01/08 Javascript
分享19个JavaScript 有用的简写写法
2017/07/07 Javascript
js基于FileSaver.js 浏览器导出Excel文件的示例
2017/08/15 Javascript
python通过装饰器检查函数参数数据类型的方法
2015/03/13 Python
Python常用随机数与随机字符串方法实例
2015/04/09 Python
Python创建模块及模块导入的方法
2015/05/27 Python
python3操作mysql数据库的方法
2017/06/23 Python
python定时关机小脚本
2018/06/20 Python
python之django母板页面的使用
2018/07/03 Python
Python操作mongodb数据库的方法详解
2018/12/08 Python
对Python3 序列解包详解
2019/02/16 Python
pandas 强制类型转换 df.astype实例
2020/04/09 Python
CSS实现限制字数功能当对象内文本溢出时显示省略标记
2014/08/20 HTML / CSS
幼儿园校车司机的岗位职责
2014/01/30 职场文书
加多宝凉茶广告词
2014/03/18 职场文书
《故乡》教学反思
2014/04/10 职场文书
工商行政管理专业求职书
2014/05/23 职场文书
离婚协议书的书写要求
2014/09/17 职场文书
入党积极分子十八届四中全会思想汇报
2014/10/23 职场文书
忠诚教育学习心得体会
2016/01/23 职场文书
深度学习详解之初试机器学习
2021/04/14 Python
Python爬虫之爬取某文库文档数据
2021/04/21 Python
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电