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 相关文章推荐
Ajax搜索结果页面下方的分页按钮的生成
Apr 05 Javascript
jQuery源码中的chunker 正则过滤符分析
Jul 31 Javascript
javascript学习笔记(五)原型和原型链详解
Oct 08 Javascript
jQuery.position()方法获取不到值的安全替换方法
Mar 13 Javascript
JavaScript实现url参数转成json形式
Sep 25 Javascript
AngularJS实现根据变量改变动态加载模板的方法
Nov 04 Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
Feb 23 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
May 07 Javascript
js实现点击切换checkbox背景图片的简单实例
May 08 Javascript
vue-router路由懒加载和权限控制详解
Dec 13 Javascript
详解Node.js amqplib 连接 Rabbit MQ最佳实践
Jan 24 Javascript
Vue使用Element实现增删改查+打包的步骤
Nov 25 Vue.js
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的正则处理函数总结分析
2008/06/20 PHP
神盾加密解密教程(二)PHP 神盾解密
2014/06/08 PHP
php实现根据词频生成tag云的方法
2015/04/17 PHP
PHP的全局错误处理详解
2016/04/25 PHP
php字符串操作针对负值的判断分析
2016/07/28 PHP
PHP入门教程之表单与验证实例详解
2016/09/11 PHP
PHP验证类的封装与使用方法详解
2019/01/10 PHP
Swoole4.4协程抢占式调度器详解
2019/05/23 PHP
深入理解PHP+Mysql分布式事务与解决方案
2020/12/03 PHP
IE JS编程需注意的内存释放问题
2009/06/23 Javascript
解析使用js判断只能输入数字、字母等验证的方法(总结)
2013/05/14 Javascript
JS自动适应的图片弹窗实例
2013/06/29 Javascript
使用javascript实现json数据以csv格式下载
2015/01/09 Javascript
IE9+已经不对document.createElement向下兼容的解决方法
2015/09/14 Javascript
用jQuery向div中添加Html文本内容的简单实现
2016/07/13 Javascript
微信小程序购物商城系统开发系列-目录结构介绍
2016/11/21 Javascript
网页中右键功能的实现方法之contextMenu的使用
2017/02/20 Javascript
jQuery插件echarts去掉垂直网格线用法示例
2017/03/03 Javascript
详解vue2 $watch要注意的问题
2017/09/08 Javascript
Nodejs实现文件上传的示例代码
2017/09/26 NodeJs
jquery3和layui冲突导致使用layui.layer.full弹出全屏iframe窗口时高度152px问题
2019/05/12 jQuery
[02:35]DOTA2超级联赛专访XB 难忘一年九冠称王
2013/06/20 DOTA
[01:35]辉夜杯战队访谈宣传片—LGD
2015/12/25 DOTA
Python运行的17个时新手常见错误小结
2012/08/07 Python
Python多线程实例教程
2014/09/06 Python
python实现得到一个给定类的虚函数
2014/09/28 Python
Python实现字典的遍历与排序功能示例
2017/12/23 Python
python 从文件夹抽取图片另存的方法
2018/12/04 Python
Python动态赋值的陷阱知识点总结
2019/03/17 Python
Pycharm常用快捷键总结及配置方法
2020/11/14 Python
CSS3系列教程:背景图片(背景大小和多背景图) 应用说明
2012/12/19 HTML / CSS
石油工程专业毕业生求职信
2014/04/13 职场文书
教师师德师风个人整改方案
2014/09/18 职场文书
2015年个人招商工作总结
2015/04/25 职场文书
北京青年观后感
2015/06/15 职场文书
pytorch常用数据类型所占字节数对照表一览
2021/05/17 Python