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 相关文章推荐
dojo 之基础篇(三)之向服务器发送数据
Mar 24 Javascript
改变javascript函数内部this指针指向的三种方法
Apr 23 Javascript
jQuery中的height innerHeight outerHeight区别示例介绍
Jun 15 Javascript
JQuery实现可直接编辑的表格
Apr 16 Javascript
JS代码随机生成姓名、手机号、身份证号、银行卡号
Apr 27 Javascript
JS如何生成一个不重复的ID的函数
Dec 25 Javascript
javaScript实现鼠标在文字上悬浮时弹出悬浮层效果
Apr 12 Javascript
vue form 表单提交后刷新页面的方法
Sep 04 Javascript
微信小程序 scroll-view 水平滚动实现过程解析
Oct 12 Javascript
基于node+vue实现简单的WebSocket聊天功能
Feb 01 Javascript
使用npm命令提示: 'npm' 不是内部或外部命令,也不是可运行的程序的处理方法
May 14 Javascript
js实现3D旋转效果
Aug 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更新购物车数量(表单部分/PHP处理部分)
2013/05/03 PHP
常用PHP框架功能对照表
2014/10/23 PHP
PHP基于单例模式实现的mysql类
2016/01/09 PHP
简单介绍PHP非阻塞模式
2016/03/03 PHP
javascript中的变量是传值还是传址的?
2010/04/19 Javascript
使用jquery插件实现图片延迟加载技术详细说明
2011/03/12 Javascript
解析瀑布流布局:JS+绝对定位的实现
2013/05/08 Javascript
Js与下拉列表处理问题解决
2014/02/13 Javascript
jQuery实现强制cookie过期方法汇总
2015/05/22 Javascript
JQuery Mobile实现导航栏和页脚
2016/03/09 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
2016/06/16 Javascript
HTML5 canvas 9绘制图片实例详解
2016/09/06 Javascript
AngularJS入门教程之Cookies读写操作示例
2016/11/02 Javascript
详解Vue.use自定义自己的全局组件
2017/06/14 Javascript
使用jQuery实现鼠标点击左右按钮滑动切换
2017/08/04 jQuery
js的函数的按值传递参数(实例讲解)
2017/11/16 Javascript
微信小程序动画(Animation)的实现及执行步骤
2018/10/28 Javascript
分享JS表单验证源码(带错误提示及密码等级)
2020/01/05 Javascript
Python决策树分类算法学习
2017/12/22 Python
Python简单定义与使用二叉树示例
2018/05/11 Python
python 去除二维数组/二维列表中的重复行方法
2019/01/23 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
2019/02/21 Python
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
2019/03/14 Python
python dumps和loads区别详解
2020/02/04 Python
Python 实现集合Set的示例
2020/12/21 Python
简单整理HTML5的基本特性和语法
2016/02/18 HTML / CSS
初中生操行评语大全
2014/04/24 职场文书
个人自荐材料
2014/05/23 职场文书
娱乐节目策划方案
2014/06/10 职场文书
公安机关查摆剖析材料
2014/10/10 职场文书
行政撤诉申请书
2015/05/18 职场文书
莫言诺贝尔获奖感言(全文)
2015/07/31 职场文书
关于公司年会的开幕词
2016/03/04 职场文书
祝福语集锦:给百岁老人祝寿贺词
2019/11/19 职场文书
Django路由层如何获取正确的url
2021/07/15 Python
Apache Linkis 中间件架构及快速安装步骤
2022/03/16 Servers