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 相关文章推荐
JavaScript 学习笔记一些小技巧
Mar 28 Javascript
javascript SpiderMonkey中的函数序列化如何进行
Dec 05 Javascript
JS实现的4种数字千位符格式化方法分享
Mar 02 Javascript
原生JS实现风箱式demo,并封装了一个运动框架(实例代码)
Jul 22 Javascript
jQuery轮播图效果精简版完整示例
Sep 04 Javascript
Vue.js每天必学之指令系统与自定义指令
Sep 07 Javascript
angular.js实现购物车功能
Oct 23 Javascript
vue-devtools的安装步骤
Apr 23 Javascript
你可能不知道的CORS跨域资源共享
Mar 13 Javascript
Node 搭建一个静态资源服务器的实现
May 20 Javascript
vue+render+jsx实现可编辑动态多级表头table的实例代码
Apr 01 Javascript
JavaScript快速调试的两个技巧
Nov 04 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
模拟OICQ的实现思路和核心程序(三)
2006/10/09 PHP
在任意字符集下正常显示网页的方法二(续)
2007/04/01 PHP
php实现按文件名搜索文件的远程文件查找器
2014/05/10 PHP
Codeigniter实现处理用户登录验证后的URL跳转
2014/06/12 PHP
php基于session实现数据库交互的类实例
2015/08/03 PHP
Laravel利用gulp如何构建前端资源详解
2018/06/03 PHP
js变量作用域及可访问性的探讨
2006/11/23 Javascript
jQuery 全选/反选以及单击行改变背景色实例
2013/07/02 Javascript
JQueryiframe页面操作父页面中的元素与方法(实例讲解)
2013/11/19 Javascript
Javasipt:操作radio标签详解
2013/12/30 Javascript
js获取下拉列表框中的value和text的值示例代码
2014/01/11 Javascript
js日期、星座的级联显示代码
2014/01/23 Javascript
jQuery实现网站添加高亮突出显示效果的方法
2015/06/26 Javascript
Bootstrap modal使用及点击外部不消失的解决方法
2016/12/13 Javascript
jQuery序列化后的表单值转换成Json
2017/06/16 jQuery
使用VUE+iView+.Net Core上传图片的方法示例
2019/01/04 Javascript
基于elementUI实现图片预览组件的示例代码
2019/03/31 Javascript
vue-cli单页面预渲染seo-prerender-spa-plugin操作
2020/08/10 Javascript
微信小程序对图片进行canvas压缩的方法示例详解
2020/11/12 Javascript
[01:36:57]【09DOTA2第一视角】小骷髅
2014/04/16 DOTA
在Django中管理Users和Permissions以及Groups的方法
2015/07/23 Python
详解Django之auth模块(用户认证)
2018/04/17 Python
详解Anaconda 的安装教程
2020/09/23 Python
CSS3美化表单控件全集
2016/06/29 HTML / CSS
用CSS3实现无限循环的无缝滚动的实例代码
2017/07/04 HTML / CSS
New Era英国官网:美国棒球帽品牌
2018/03/21 全球购物
navabi英国:设计师大码女装
2019/06/25 全球购物
火山咖啡:Volcanica Coffee
2019/10/29 全球购物
OSPF有什么优点?为什么OSPF比RIP收敛快?
2013/02/13 面试题
草船借箭教学反思
2014/02/03 职场文书
向国旗敬礼学生寄语大全
2014/09/30 职场文书
单位作风建设自查报告
2014/10/23 职场文书
2015年房产销售工作总结范文
2015/05/22 职场文书
2015年见习期个人工作总结
2015/05/28 职场文书
Java实战之用Swing实现通讯录管理系统
2021/06/13 Java/Android
图解排序算法之希尔排序Java实现
2021/06/26 Java/Android