首頁  >  文章  >  web前端  >  js實作簡單鎖定畫面功能實例_javascript技巧

js實作簡單鎖定畫面功能實例_javascript技巧

WBOY
WBOY原創
2016-05-16 15:57:312438瀏覽

本文實例講述了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程式設計有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn