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定时器的使用(实例讲解)
Jan 06 Javascript
JavaScript中九种常用排序算法
Sep 02 Javascript
jQuery自定义添加&quot;$&quot;与解决&quot;$&quot;冲突的方法
Jan 19 Javascript
JavaScript中rem布局在react中的应用
Dec 09 Javascript
JS定时器使用,定时定点,固定时刻,循环执行详解
May 31 Javascript
详解Javascript几种跨域方式总结
Feb 27 Javascript
vue实现验证码按钮倒计时功能
Apr 10 Javascript
js实现移动端轮播图
Dec 21 Javascript
关于JavaScript 数组你应该知道的事情(推荐)
Apr 10 Javascript
Vue 中使用富文本编译器wangEditor3的方法
Sep 26 Javascript
JS实现canvas简单小画板功能
Jun 23 Javascript
js实现表格数据搜索
Aug 09 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
destoon安全设置中需要设置可写权限的目录及文件
2014/06/21 PHP
基于OpenCart 开发支付宝,财付通,微信支付参数错误问题
2015/10/01 PHP
php-fpm添加service服务的例子
2018/04/27 PHP
javascript 同时在IE和FireFox获取KeyCode的代码
2010/02/07 Javascript
javascript面向对象入门基础详细介绍
2012/09/05 Javascript
JavaScript中的对象序列化介绍
2014/12/30 Javascript
javascript实现在指定元素中垂直水平居中
2015/09/13 Javascript
深入理解vue.js双向绑定的实现原理
2016/12/05 Javascript
Jquery实现跨域异步上传文件总结
2017/02/03 Javascript
Bootstrap表单简单实现代码
2017/03/06 Javascript
js实现手机发送验证码功能
2017/03/13 Javascript
基于node搭建服务器,写接口,调接口,跨域的实例
2018/05/13 Javascript
JavaScript中var、let、const区别浅析
2018/06/24 Javascript
jQuery序列化form表单数据为JSON对象的实现方法
2018/09/20 jQuery
Node 使用express-http-proxy 做api网关的实现
2020/10/15 Javascript
用Python展示动态规则法用以解决重叠子问题的示例
2015/04/02 Python
深入浅析Python中join 和 split详解(推荐)
2016/06/30 Python
Python自动生产表情包
2017/03/17 Python
tensorflow识别自己手写数字
2018/03/14 Python
解决tensorflow测试模型时NotFoundError错误的问题
2018/07/27 Python
Python实现的简单线性回归算法实例分析
2018/12/26 Python
python字符串中匹配数字的正则表达式
2019/07/03 Python
python实现ip地址查询经纬度定位详解
2019/08/30 Python
python内置函数sorted()用法深入分析
2019/10/08 Python
python实现读取类别频数数据画水平条形图案例
2020/04/24 Python
Django form表单与请求的生命周期步骤详解
2020/06/07 Python
Tensorflow--取tensorf指定列的操作方式
2020/06/30 Python
linux centos 7.x 安装 python3.x 替换 python2.x的过程解析
2020/12/14 Python
CSS去掉A标签(链接)虚线框的方法
2014/04/01 HTML / CSS
技校毕业生自荐信范文
2014/03/07 职场文书
党员干部三严三实心得体会
2014/10/13 职场文书
2014年医院后勤工作总结
2014/12/06 职场文书
2015年七七事变78周年纪念活动方案
2015/05/06 职场文书
餐厅服务员管理制度
2015/08/05 职场文书
大学自主招生自荐信(2016精选篇)
2016/01/28 职场文书
PostgreSQL逻辑复制解密原理解析
2022/09/23 PostgreSQL