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


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控制台调试的方法
Mar 07 Javascript
Jquery实现鼠标移动放大图片功能实例
Mar 25 Javascript
JS根据key值获取URL中的参数值及把URL的参数转换成json对象
Aug 26 Javascript
使用impress.js制作幻灯片
Sep 09 Javascript
对Angular.js Controller如何进行单元测试
Oct 25 Javascript
微信小程序中hidden不生效原因的解决办法
Apr 26 Javascript
javascript简单链式调用案例分析
May 10 Javascript
微信小程序封装http访问网络库实例代码
May 24 Javascript
关于预加载InstantClick的问题解决方法
Sep 12 Javascript
浅谈vue中慎用style的scoped属性
Nov 28 Javascript
浅谈TypeScript 用 Webpack/ts-node 运行的配置记录
Oct 11 Javascript
一篇文章看懂JavaScript中的回调
Jan 05 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
PHP XML操作类DOMDocument
2009/12/16 PHP
php一个找二层目录的小东东
2012/08/02 PHP
PHP zip扩展Linux下安装过程分享
2014/05/05 PHP
ThinkPHP关于session的操作方法汇总
2014/07/18 PHP
thinkPHP商城公告功能开发问题分析
2016/12/01 PHP
php动态读取数据清除最右边距的方法
2017/04/12 PHP
Laravel 5.5 实现禁用用户注册示例
2019/10/24 PHP
定义JavaScript二维数组采用定义数组的数组来实现
2012/12/09 Javascript
JS实现带有3D立体感的银灰色竖排折叠菜单代码
2015/10/20 Javascript
第一次接触神奇的Bootstrap网格系统
2016/07/27 Javascript
jQuery实现的自定义滚动条实例详解
2016/09/20 Javascript
js通过keyCode值判断单击键盘上某个键,然后触发指定的事件方法
2017/02/19 Javascript
JavaScript数组去重的多种方法(四种)
2017/09/19 Javascript
Angularjs使用过滤器完成排序功能
2017/09/20 Javascript
JS函数节流和函数防抖问题分析
2017/12/18 Javascript
解决前后端分离 vue+springboot 跨域 session+cookie失效问题
2019/05/13 Javascript
在Vue中使用antv的示例代码
2020/06/29 Javascript
Python实现一个Git日志统计分析的小工具
2017/12/14 Python
Python 通过打码平台实现验证码的实现
2019/05/13 Python
对pyqt5多线程正确的开启姿势详解
2019/06/14 Python
在SQLite-Python中实现返回、查询中文字段的方法
2019/07/17 Python
python FTP批量下载/删除/上传实例
2019/12/22 Python
pytorch 自定义参数不更新方式
2020/01/06 Python
Superdry瑞典官网:英国日本街头风品牌
2017/05/17 全球购物
中国跨境在线时尚零售商:Bellelily
2018/04/06 全球购物
NYX Professional Makeup官方网站:专业彩妆和美容产品
2019/10/29 全球购物
介绍一下Java中的Class类
2015/04/10 面试题
投标单位介绍信
2014/01/09 职场文书
纺织工程专业个人求职信范文
2014/01/27 职场文书
《四季》教学反思
2014/04/08 职场文书
餐饮商业计划书范文
2014/04/29 职场文书
天地会口号
2014/06/17 职场文书
设计专业毕业生求职信
2014/06/25 职场文书
中学生的1000字检讨书
2014/10/11 职场文书
小学生作文批改评语
2014/12/25 职场文书
党员争先创优承诺书
2015/01/20 职场文书