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 相关文章推荐
escape、encodeURI 和 encodeURIComponent 的区别
Mar 02 Javascript
event.keyCode键码值表 附只能输入特定的字符串代码
May 15 Javascript
一个轻量级的javascript库 pj介绍
Dec 19 Javascript
jQuery动画特效实例教程
Aug 29 Javascript
Egret引擎开发指南之编译项目
Sep 03 Javascript
jQuery中:header选择器用法实例
Dec 29 Javascript
jQuery元素属性操作实例(设置、获取及删除元素属性)
Sep 08 Javascript
js原生Ajax的封装和原理详解
Mar 11 Javascript
Bootstrap提示框效果的实例代码
Jul 12 Javascript
jquery学习笔记之无new构建详解
Dec 07 jQuery
微信小程序 bindtap 传参的实例代码
Feb 21 Javascript
JavaScript实现HSL拾色器
May 21 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
解析wamp5下虚拟机配置文档
2013/06/27 PHP
php实现利用phpexcel导出数据
2013/08/24 PHP
PHP JS Ip地址及域名格式检测代码
2013/09/27 PHP
Destoon旺旺无法正常显示,点击提示“会员名不存在”的解决办法
2014/06/21 PHP
PHP实现的日历功能示例
2018/09/01 PHP
关于JavaScript的一些看法
2009/05/27 Javascript
js 键盘记录实现(兼容FireFox和IE)
2010/02/07 Javascript
Node.js实现的简易网页抓取功能示例
2014/12/05 Javascript
JavaScript中this的9种应用场景及三种复合应用场景
2015/09/12 Javascript
jQuery ajax MD5实现用户注册即时验证功能
2016/10/11 Javascript
WEB 前端开发中防治重复提交的实现方法
2016/10/26 Javascript
Vue使用vux-ui自定义表单验证遇到的问题及解决方法
2018/05/10 Javascript
关于Vue Router中路由守卫的应用及在全局导航守卫中检查元字段的方法
2018/12/09 Javascript
构建一个JavaScript插件系统
2020/10/20 Javascript
Nginx搭建HTTPS服务器和强制使用HTTPS访问的方法
2015/08/16 Python
对python 矩阵转置transpose的实例讲解
2018/04/17 Python
python读取word文档,插入mysql数据库的示例代码
2018/11/07 Python
浅谈python 导入模块和解决文件句柄找不到问题
2018/12/15 Python
使用Python的SymPy库解决数学运算问题的方法
2019/03/27 Python
Python PIL库图片灰化处理
2020/04/07 Python
python中urllib.request和requests的使用及区别详解
2020/05/05 Python
美国最受欢迎的童装品牌之一:The Children’s Place
2016/07/23 全球购物
德国电子商城:ComputerUniverse
2017/04/21 全球购物
航空大学应届生求职信
2013/11/10 职场文书
会计专业应届生自荐信
2014/02/07 职场文书
小学模范班主任事迹材料
2014/05/13 职场文书
2014银行领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
员工工作能力评语
2014/12/31 职场文书
新员工入职欢迎词
2015/01/23 职场文书
教师个人成长总结
2015/02/11 职场文书
学生通报表扬范文
2015/05/04 职场文书
导游词之五台山
2019/10/11 职场文书
vue3中的组件间通信
2021/03/31 Vue.js
php引用传递
2021/04/01 PHP
JS监听Esc 键触发事键
2021/04/14 Javascript
python实现会员信息管理系统(List)
2022/03/18 Python