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 相关文章推荐
jquery实现居中弹出层代码
Aug 25 Javascript
Jquery数独游戏解析(一)-页面布局
Nov 05 Javascript
JavaScript简单实现鼠标拖动选择功能
Mar 06 Javascript
node.js中的fs.mkdir方法使用说明
Dec 17 Javascript
javascript实现表单提交后,提交按钮不可用的方法
Apr 18 Javascript
jQuery实现图片与文字描述左右滑动自动切换的方法
Jul 27 Javascript
推荐10 个很棒的 jQuery 特效代码
Oct 04 Javascript
JS正则表达式修饰符global(/g)用法分析
Dec 27 Javascript
angular ng-repeat数组中的数组实例
Feb 18 Javascript
Vue生命周期示例详解
Apr 12 Javascript
简单实现jQuery手风琴效果
Aug 18 jQuery
微信小程序实现列表滚动头部吸顶的示例代码
Jul 12 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 MessagePack介绍
2013/10/06 PHP
php查找字符串出现次数的方法
2014/12/01 PHP
Thinkphp调用Image类生成缩略图的方法
2015/03/07 PHP
jquery插件之easing使用
2010/08/19 Javascript
javascript基础知识大集锦(一) 推荐收藏
2011/01/13 Javascript
公共js在页面底部加载的注意事项介绍
2013/07/18 Javascript
用js控制组织结构图可以任意拖拽到指定位置
2014/01/17 Javascript
JS cookie中文乱码解决方法
2014/01/28 Javascript
JavaScript使用indexOf获得子字符串在字符串中位置的方法
2015/04/06 Javascript
在JavaScript中操作时间之setYear()方法的使用
2015/06/12 Javascript
解决jquery无法找到其他父级子集问题的方法
2016/05/10 Javascript
Ionic快速安装教程
2016/06/03 Javascript
js获取元素的外链样式的简单实现方法
2016/06/06 Javascript
Bootstrap基本组件学习笔记之下拉菜单(7)
2016/12/07 Javascript
js编写三级联动简单案例
2016/12/21 Javascript
jquery实现文字单行横移或翻转(上下、左右跳转)
2017/01/08 Javascript
bootstrap paginator分页插件的两种使用方式实例详解
2017/11/14 Javascript
探秘vue-rx 2.0(推荐)
2018/09/21 Javascript
微信小程序全局变量功能与用法详解
2019/01/22 Javascript
解决layui-open关闭自身窗口的问题
2019/09/10 Javascript
微信小程序页面间传递数组对象方法解析
2019/11/06 Javascript
微信小程序getLocation 需要在app.json中声明permission字段
2020/03/03 Javascript
详解Python中DOM方法的动态性
2015/04/11 Python
python登录pop3邮件服务器接收邮件的方法
2015/04/30 Python
Django如何实现网站注册用户邮箱验证功能
2019/08/14 Python
python3下pygame如何实现显示中文
2020/01/11 Python
五分钟学会HTML5的WebSocket协议
2019/11/22 HTML / CSS
H5离线存储Manifest原理及使用
2020/04/28 HTML / CSS
美国当红的名品折扣网:Gilt Groupe
2016/08/15 全球购物
建筑工程技术应届生求职信
2013/11/17 职场文书
《秋游》教学反思
2014/04/24 职场文书
本科毕业生应聘求职信
2014/07/06 职场文书
竞选班干部演讲稿600字
2014/08/20 职场文书
大学教师个人总结
2015/02/10 职场文书
电台广播稿范文
2015/08/19 职场文书
关于Python中*args和**kwargs的深入理解
2021/08/07 Python