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 获取HTML DOM节点元素的方法小结
Apr 24 Javascript
利用JQuery为搜索栏增加tag提示
Jun 22 Javascript
jquery及原生js获取select下拉框选中的值示例
Oct 25 Javascript
jquery实现的鼠标下拉滚动置顶效果
Jul 24 Javascript
Javascript中的匿名函数与封装介绍
Mar 15 Javascript
开启Javascript中apply、call、bind的用法之旅模式
Oct 28 Javascript
thinkphp实现无限分类(使用递归)
Dec 19 Javascript
Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
Mar 12 Javascript
vue中element 上传功能的实现思路
Jul 06 Javascript
傻瓜式vuex语法糖kiss-vuex整理
Dec 21 Javascript
vue 验证码界面实现点击后标灰并设置div按钮不可点击状态
Oct 28 Javascript
JavaScript canvas绘制折线图
Feb 18 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下判断数组中是否存在相同的值array_unique
2008/03/25 PHP
win7安装php框架Yii的方法
2016/01/25 PHP
创建无限极分类树型结构的简单方法
2017/06/20 PHP
PHP序列化和反序列化深度剖析实例讲解
2020/12/29 PHP
img的onload的另类用法
2008/01/10 Javascript
event.keyCode键码值表 附只能输入特定的字符串代码
2009/05/15 Javascript
自己的js工具_Form 封装
2009/08/21 Javascript
一个简单的jQuery插件制作 学习过程及实例
2010/04/25 Javascript
关于js注册事件的常用方法
2013/04/03 Javascript
深入理解Javascript中的作用域链和闭包
2017/04/25 Javascript
vue.js中$set与数组更新方法
2018/03/08 Javascript
JS实现自定义弹窗功能
2018/08/08 Javascript
jquery实现动态创建form并提交的方法示例
2019/05/27 jQuery
vue 实现cli3.0中使用proxy进行代理转发
2019/10/30 Javascript
[48:48]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python logging类库使用例子
2014/11/22 Python
Python编码类型转换方法详解
2016/07/01 Python
python 3利用BeautifulSoup抓取div标签的方法示例
2017/05/28 Python
python pandas 对时间序列文件处理的实例
2018/06/22 Python
python3的数据类型及数据类型转换实例详解
2019/08/20 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
2019/08/23 Python
基于python实现学生信息管理系统
2019/11/22 Python
KEETSA环保床垫:更好的睡眠,更好的生活!
2016/11/24 全球购物
Boda Skins皮衣官网:奢侈皮夹克,全球配送
2016/12/15 全球购物
实现strstr功能,即在父串中寻找子串首次出现的位置
2016/08/05 面试题
表扬信格式
2014/01/12 职场文书
《秋游》教学反思
2014/04/24 职场文书
学校开学标语
2014/10/06 职场文书
2014年仓库工作总结
2014/11/20 职场文书
邀请书格式范文
2015/02/02 职场文书
乡镇安全生产月活动总结
2015/05/08 职场文书
焦裕禄纪念馆观后感
2015/06/09 职场文书
值班管理制度范本
2015/08/06 职场文书
人力资源部工作计划
2019/05/14 职场文书
python 进阶学习之python装饰器小结
2021/09/04 Python
详解Go语言中Get/Post请求测试
2022/06/01 Golang