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中匿名函数,函数直接量和闭包
May 08 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(五)可移动地图的实现
Jan 23 Javascript
JS烟花背景效果实现方法
Mar 03 Javascript
jQuery鼠标悬浮链接弹出跟随图片实例代码
Jan 08 Javascript
深入理解JavaScript中的预解析
Jan 04 Javascript
js实现QQ面板拖拽效果(慕课网DOM事件探秘)(全)
Sep 19 Javascript
AngularJS对动态增加的DOM实现ng-keyup事件示例
Mar 12 Javascript
Vue组件中prop属性使用说明实例代码详解
May 31 Javascript
5分钟学会Vue动画效果(小结)
Jul 21 Javascript
webpack项目使用eslint建立代码规范实现
May 16 Javascript
谈谈IntersectionObserver懒加载的具体使用
Oct 15 Javascript
Vue实现 点击显示再点击隐藏效果(点击页面空白区域也隐藏效果)
Jan 16 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
第1次亲密接触PHP5(2)
2006/10/09 PHP
php中的数组操作函数整理
2008/08/18 PHP
解析isset与is_null的区别
2013/08/09 PHP
PHP处理SQL脚本文件导入到MySQL的代码实例
2014/03/17 PHP
CI框架入门之MVC简单示例
2016/11/21 PHP
prototype class详解
2006/09/07 Javascript
formValidator3.3的ajaxValidator一些异常分析
2011/07/12 Javascript
javascript学习笔记(二十) 获得和设置元素的特性(属性)
2012/06/20 Javascript
js限制文本框只能输入数字(正则表达式)
2012/07/15 Javascript
JS操作数据库的实例代码
2013/10/17 Javascript
javascript阻止scroll事件多次执行的思路及实现
2013/11/08 Javascript
禁止空格提交表单的js代码
2013/11/17 Javascript
jQuery插件slider实现拖动滑块选取价格范围
2015/04/30 Javascript
简介alert()与console.log()的不同
2015/08/26 Javascript
js编写当天简单日历效果【实现代码】
2016/05/03 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
2017/03/21 Javascript
Vue2.0中集成UEditor富文本编辑器的方法
2018/03/03 Javascript
react-native-video实现视频全屏播放的方法
2018/03/19 Javascript
jQuery实现判断滚动条滚动到document底部的方法分析
2019/08/27 jQuery
微信小程序官方动态自定义底部tabBar的例子
2019/09/04 Javascript
Vue + Node.js + MongoDB图片上传组件实现图片预览和删除功能详解
2020/04/29 Javascript
[03:42]2014DOTA2西雅图国际邀请赛 Navi战队巡礼
2014/07/07 DOTA
python处理文本文件并生成指定格式的文件
2014/07/31 Python
python3+PyQt5重新实现自定义数据拖放处理
2018/04/19 Python
Python实战之制作天气查询软件
2019/05/14 Python
python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结
2019/07/04 Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
2019/07/25 Python
基于python实现ROC曲线绘制广场解析
2020/06/28 Python
Python中常用的os操作汇总
2020/11/05 Python
完美解决Pycharm中matplotlib画图中文乱码问题
2021/01/11 Python
CSS教程:CSS3圆角属性
2009/04/02 HTML / CSS
企业挂职心得体会
2014/09/10 职场文书
信用卡工作证明模板
2014/09/14 职场文书
高三英语教学反思
2016/03/03 职场文书
JavaScript中MutationObServer监听DOM元素详情
2021/11/27 Javascript
动画「进击的巨人」第86话播出感谢绘公开
2022/03/21 日漫