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


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 相关文章推荐
Javascript的IE和Firefox兼容性汇编(zz)
Feb 02 Javascript
用js实现上传图片前的预览(TX的面试题)
Aug 14 Javascript
javascript 树控件 比较好用
Jun 11 Javascript
JavaScript 事件绑定及深入
Apr 13 Javascript
JavaScript处理解析JSON数据过程详解
Sep 11 Javascript
探讨JavaScript语句的执行过程
Jan 28 Javascript
利用Angular2的Observables实现交互控制的方法
Dec 27 Javascript
微信小程序开发之点击按钮退出小程序的实现方法
Apr 26 Javascript
jquery实现选项卡切换代码实例
May 14 jQuery
js实现div色块拖动录制
Jan 16 Javascript
vue使用Sass时报错问题的解决方法
Oct 14 Javascript
React Native登录之指纹登录篇的示例代码
Nov 03 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
file_get_contents(&quot;php://input&quot;, &quot;r&quot;)实例介绍
2013/07/01 PHP
php检测文件编码的方法示例
2014/04/25 PHP
PHP+jQuery实现即点即改功能示例
2019/02/21 PHP
用javascript实现兼容IE7的类库 IE7_0_9.zip提供下载
2007/08/08 Javascript
JS 判断代码全收集
2009/04/28 Javascript
JSONP跨域的原理解析及其实现介绍
2014/03/22 Javascript
js获取select默认选中的Option并不是当前选中值
2014/05/07 Javascript
常用的jQuery前端技巧收集
2014/12/24 Javascript
JS基于Mootools实现的个性菜单效果代码
2015/10/21 Javascript
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例
2016/08/03 Javascript
在html中引入外部js文件,并调用带参函数的方法
2016/10/31 Javascript
JavaScript trim 实现去除字符串首尾指定字符的简单方法
2016/12/27 Javascript
jQuery插件FusionCharts绘制的2D双柱状图效果示例【附demo源码】
2017/05/13 jQuery
vue中用H5实现文件上传的方法实例代码
2017/05/27 Javascript
Vue中this.$router.push参数获取方法
2018/02/27 Javascript
Webpack打包字体font-awesome的方法示例
2018/04/26 Javascript
jQuery中的类名选择器(.class)用法简单示例
2018/05/14 jQuery
JavaScript解决浮点数计算不准确问题的方法分析
2018/07/09 Javascript
js实现通过开始结束控制的计时器
2019/02/25 Javascript
微信小程序获取地理位置及经纬度授权代码实例
2019/09/18 Javascript
[46:09]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第三场
2014/05/26 DOTA
Python简单计算文件夹大小的方法
2015/07/14 Python
Python压缩解压缩zip文件及破解zip文件密码的方法
2015/11/04 Python
Python中Django 后台自定义表单控件
2017/03/28 Python
python批量设置多个Excel文件页眉页脚的脚本
2018/03/14 Python
python中pika模块问题的深入探究
2018/10/13 Python
Python绘制热力图示例
2019/09/27 Python
树莓派4B+opencv4+python 打开摄像头的实现方法
2019/10/18 Python
python3中关于excel追加写入格式被覆盖问题(实例代码)
2020/01/10 Python
python实现一次性封装多条sql语句(begin end)
2020/06/06 Python
HTML5 画布canvas使用方法
2016/03/18 HTML / CSS
SQL Server 2000数据库的文件有哪些,分别进行描述。
2015/11/09 面试题
自强自立美德少年事迹材料
2014/08/16 职场文书
公司周年庆典标语
2014/10/07 职场文书
2014年政教处工作总结
2014/12/20 职场文书
mysql 数据插入优化方法之concurrent_insert
2021/07/01 MySQL