js实现简单锁屏功能实例


Posted in Javascript onMay 27, 2015

本文实例讲述了js实现简单锁屏功能的方法。分享给大家供大家参考。具体实现方法如下:

//********* 锁屏DIV ***************************
function LockScreen(tag,title,width,height,url)
{
  if (tag) //锁屏
  {
    var lockdiv = document.getElementById("lockscreen");
    if (lockdiv!=null)
    {
      lockdiv.style.display = "block";
      var subdiv = document.getElementById("subdialog");
      if (subdiv!=null)
      {
        subdiv.style.display = "block";
        document.getElementById("dialog1").src = url;
      }      
    }else{
      //创建新的锁屏DIV,并执行锁屏
      var tabframe= document.createElement("div");
      tabframe.id = "lockscreen";
      tabframe.name = "lockscreen";
      tabframe.style.top = '0px';
      tabframe.style.left = '0px';
      tabframe.style.height = '100%';
      tabframe.style.width = '100%';
      tabframe.style.position = "absolute";
      tabframe.style.filter = "Alpha(opacity=10)";
      tabframe.style.backgroundColor="#000000";
      tabframe.style.zIndex = "99998";
      document.body.appendChild(tabframe);
      tabframe.style.display = "block";
      //子DIV
      var subdiv = document.createElement("div");
      subdiv.id = "subdialog";
      subdiv.name = "subdialog";
      subdiv.style.top = Math.round((tabframe.clientHeight-height)/2);
      subdiv.style.left = Math.round((tabframe.clientWidth-width)/2);
      subdiv.style.height = height+'px';
      subdiv.style.width = width+'px';
      subdiv.style.position = "absolute";
      subdiv.style.backgroundColor="#000000"; 
      subdiv.style.zIndex = "99999";
      subdiv.style.filter = "Alpha(opacity=100)";
      subdiv.style.border = "1px";
      //subdiv.onmousemove = mouseMoveDialog;
      //subdiv.onmousedown = control_onmousedown;
      //subdiv.onmouseup = mouseUp;
      document.body.appendChild(subdiv);
      subdiv.style.display = "block";
      //subdiv.onclick=UNLockScreen;
      var iframe_height = height-30;
      var titlewidth = width;
      var html = "<table border='0' cellpadding='0' cellspacing='0'>"
      html += "<tr><td></td><td>";
      html += "<table><tr><td><font color='#FFFFFF'><b>"+title+"</b></font></td><td style='width:30px' valign='top'><img src='/images/images/close.gif' ></img></td></tr></table>";
      html += "</td><td></td></tr>";
      html += "<tr><td></td><td style='height:100px;'><iframe id='dialog1' frameborder=0 style='width:"+titlewidth+"px;height:" + iframe_height + "px' src='"+url+"'></iframe></td><td></td></tr>";
      html += "<td></td><td></td><td></td>";
      html += "</table>";
      subdiv.innerHTML = html;
    }
  }else{
    //解屏
    var lockdiv = document.getElementById("lockscreen");
    if (lockdiv!=null)
    {
      lockdiv.style.display = "none";
    }
    var subdiv = document.getElementById("subdialog");
    if (subdiv!=null)
    {
      subdiv.style.display = "none";
    }
  }
}
function UNLockScreen(){
  LockScreen(false);
}

如果大家不知道什么是锁屏,可以去163信箱看一看,用途是你要离开屏幕一段时间时可以暂时锁住屏幕保留工作空间。带回来只要重新输入密码验证即可恢复到原先的工作空间。

一般都是通过在页面上增加不透明遮罩层实现锁屏功能,或者是使用两个区域互相显示隐藏。使用框架(frame)构建的网站如果要实现锁屏功能则很有难度。因为在框架页面无法使用div做层。而且框架也不支持css的display:none;属性。

最后的实现方法是使用在FRAMESET内再增加一个frame,出事状态时FRAMESET的rows属性将新增加的frame设置为高度为0。点击锁屏按钮时,则将FRAMESET中其他的frame的高度设置为0,将新增的frame高度设置为*。这样我们就完成了frame的替换功能。解锁后将 FRAMESET的rows属性重新设置为初始值,屏幕恢复到原状态。

这样并没有结束。如果用户在屏幕上使用右键刷新,或者按F5键刷新页面,就会绕过锁屏的密码校验功能。可以通过阻止F5和鼠标右键的默认实现达到目的。

//阻止F5或者鼠标右键刷新,使锁屏失效。
document.onkeydown = function(){
 if(event.keyCode==116) {
 event.keyCode=0;
 event.returnValue = false;
 }
}
document.oncontextmenu = function() {event.returnValue = false;}

最后调用的方法:

LockScreen(true,'标题',424,314,'http://www.baidu.com');

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
非常好的js代码
Jun 27 Javascript
Prototype中dom对象方法汇总
Sep 17 Javascript
仿迅雷焦点广告效果(JQuery版)
Nov 19 Javascript
Knockout数组(observable)使用详解示例
Nov 15 Javascript
js与jquery正则验证电子邮箱、手机号、邮政编码的方法
Jul 04 Javascript
jQuery实现联动下拉列表查询框
Jan 04 Javascript
react实现pure render时bind(this)隐患需注意!
Mar 09 Javascript
结合mint-ui移动端下拉加载实践方法总结
Nov 08 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
Feb 09 Javascript
vue cli构建的项目中请求代理与项目打包问题
Feb 26 Javascript
js实现web调用摄像头 js截取视频画面
Apr 21 Javascript
JS中准确判断变量类型的方法
Jun 01 Javascript
JS实现简单路由器功能的方法
May 27 #Javascript
JavaScript实现将UPC转换成ISBN的方法
May 26 #Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
May 26 #Javascript
js实现文本框选中的方法
May 26 #Javascript
javascript委托(Delegate)blur和focus用法实例分析
May 26 #Javascript
javascript删除元素节点removeChild()用法实例
May 26 #Javascript
JavaScript事件委托实例分析
May 26 #Javascript
You might like
聊天室php&amp;mysql(二)
2006/10/09 PHP
让PHP开发者事半功倍的十大技巧小结
2010/04/20 PHP
第三章 php操作符与控制结构代码
2011/12/30 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
2017/08/01 PHP
PHP实现的折半查找算法示例
2017/12/19 PHP
Laravel框架验证码类用法实例分析
2019/09/11 PHP
php的单例模式及应用场景详解
2021/02/27 PHP
理解JavaScript的caller,callee,call,apply
2009/04/28 Javascript
js下获得客户端操作系统的函数代码(1:vista,2:windows7,3:2000,4:xp,5:2003,6:2008)
2011/10/31 Javascript
网页源代码保护(禁止右键、复制、另存为、查看源文件)
2012/05/23 Javascript
JavaScript中的字符串操作详解
2013/11/12 Javascript
js获取判断上传文件后缀名的示例代码
2014/02/19 Javascript
jquery xMarquee实现文字水平无缝滚动效果
2014/04/29 Javascript
JS对象与json字符串格式转换实例
2014/10/28 Javascript
javascript 闭包详解
2015/02/15 Javascript
jQuery插件zoom实现图片全屏放大弹出层特效
2015/04/15 Javascript
JS控制弹出悬浮窗口(一览画面)的实例代码
2016/05/30 Javascript
React Native验证码倒计时工具类分享
2017/10/24 Javascript
手把手教你 CKEDITOR 4 扩展插件制作
2019/06/18 Javascript
vue.js中ref和$refs的使用及示例讲解
2019/08/14 Javascript
Python首次安装后运行报错(0xc000007b)的解决方法
2016/10/18 Python
python导出hive数据表的schema实例代码
2018/01/22 Python
django的登录注册系统的示例代码
2018/05/14 Python
python利用selenium进行浏览器爬虫
2019/04/25 Python
python使用turtle绘制国际象棋棋盘
2019/05/23 Python
Pytorch抽取网络层的Feature Map(Vgg)实例
2019/08/20 Python
Python爬虫之Selenium实现关闭浏览器
2020/12/04 Python
Python爬虫爬取ts碎片视频+验证码登录功能
2021/02/22 Python
先进集体获奖感言
2014/02/13 职场文书
少年闰土教学反思
2014/02/22 职场文书
网络工程专业自荐信范文
2014/03/16 职场文书
《桂花雨》教学反思
2014/04/12 职场文书
团代会邀请函
2015/02/02 职场文书
2015年妇委会工作总结
2015/05/22 职场文书
基于nginx实现上游服务器动态自动上下线无需reload的实现方法
2021/03/31 Servers
详解MySQL集群搭建
2021/05/26 MySQL