首页 > 语言 > JavaScript > 正文

js实现简单锁屏功能实例

2024-05-06 16:20:54
字体:
来源:转载
供稿:网友

这篇文章主要介绍了js实现简单锁屏功能的方法,实例分析了javascript操作页面元素显示与隐藏的相关技巧,涉及javascript操作元素属性与鼠标、键盘事件的相关技巧,需要的朋友可以参考下

本文实例讲述了js实现简单锁屏功能的方法。分享给大家供大家参考。具体实现方法如下:

 

 
  1. //********* 锁屏DIV *************************** 
  2. function LockScreen(tag,title,width,height,url) 
  3. if (tag) //锁屏 
  4. var lockdiv = document.getElementById("lockscreen"); 
  5. if (lockdiv!=null
  6. lockdiv.style.display = "block"
  7. var subdiv = document.getElementById("subdialog"); 
  8. if (subdiv!=null
  9. subdiv.style.display = "block"
  10. document.getElementById("dialog1").src = url; 
  11. }  
  12. }else
  13. //创建新的锁屏DIV,并执行锁屏 
  14. var tabframe= document.createElement("div"); 
  15. tabframe.id = "lockscreen"
  16. tabframe.name = "lockscreen"
  17. tabframe.style.top = '0px'
  18. tabframe.style.left = '0px'
  19. tabframe.style.height = '100%'
  20. tabframe.style.width = '100%'
  21. tabframe.style.position = "absolute"
  22. tabframe.style.filter = "Alpha(opacity=10)"
  23. tabframe.style.backgroundColor="#000000"
  24. tabframe.style.zIndex = "99998"
  25. document.body.appendChild(tabframe); 
  26. tabframe.style.display = "block"
  27. //子DIV 
  28. var subdiv = document.createElement("div"); 
  29. subdiv.id = "subdialog"
  30. subdiv.name = "subdialog"
  31. subdiv.style.top = Math.round((tabframe.clientHeight-height)/2); 
  32. subdiv.style.left = Math.round((tabframe.clientWidth-width)/2); 
  33. subdiv.style.height = height+'px'
  34. subdiv.style.width = width+'px'
  35. subdiv.style.position = "absolute"
  36. subdiv.style.backgroundColor="#000000";  
  37. subdiv.style.zIndex = "99999"
  38. subdiv.style.filter = "Alpha(opacity=100)"
  39. subdiv.style.border = "1px"
  40. //subdiv.onmousemove = mouseMoveDialog; 
  41. //subdiv.onmousedown = control_onmousedown; 
  42. //subdiv.onmouseup = mouseUp; 
  43. document.body.appendChild(subdiv); 
  44. subdiv.style.display = "block"
  45. //subdiv.onclick=UNLockScreen; 
  46. var iframe_height = height-30; 
  47. var titlewidth = width; 
  48. var html = "<table border='0' cellpadding='0' cellspacing='0'>" 
  49. html += "<tr><td></td><td>"
  50. 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>"
  51. html += "</td><td></td></tr>"
  52. 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>"
  53. html += "<td></td><td></td><td></td>"
  54. html += "</table>"
  55. subdiv.innerHTML = html; 
  56. }else
  57. //解屏 
  58. var lockdiv = document.getElementById("lockscreen"); 
  59. if (lockdiv!=null
  60. lockdiv.style.display = "none"
  61. var subdiv = document.getElementById("subdialog"); 
  62. if (subdiv!=null
  63. subdiv.style.display = "none"
  64. function UNLockScreen(){ 
  65. LockScreen(false); 

如果大家不知道什么是锁屏,可以去163信箱看一看,用途是你要离开屏幕一段时间时可以暂时锁住屏幕保留工作空间。带回来只要重新输入密码验证即可恢复到原先的工作空间。

一般都是通过在页面上增加不透明遮罩层实现锁屏功能,或者是使用两个区域互相显示隐藏。使用框架(frame)构建的网站如果要实现锁屏功能则很有难度。因为在框架页面无法使用div做层。而且框架也不支持css的display:none;属性。

最后的实现方法是使用在FRAMESET内再增加一个frame,出事状态时FRAMESET的rows属性将新增加的frame设置为高度为0。点击锁屏按钮时,则将FRAMESET中其他的frame的高度设置为0,将新增的frame高度设置为*。这样我们就完成了frame的替换功能。解锁后将 FRAMESET的rows属性重新设置为初始值,屏幕恢复到原状态。

这样并没有结束。如果用户在屏幕上使用右键刷新,或者按F5键刷新页面,就会绕过锁屏的密码校验功能。可以通过阻止F5和鼠标右键的默认实现达到目的。

 

 
  1. //阻止F5或者鼠标右键刷新,使锁屏失效。 
  2. document.onkeydown = function(){ 
  3. if(event.keyCode==116) { 
  4. event.keyCode=0; 
  5. event.returnValue = false
  6. document.oncontextmenu = function() {event.returnValue = false;} 

最后调用的方法:

 

复制代码代码如下:
LockScreen(true,'标题',424,314,'http://www.baidu.com');

 

希望本文所述对大家的javascript程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选