溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JS如何實現(xiàn)禁用右鍵、禁用Ctrl+u、禁用Ctrl+s、禁用F12

發(fā)布時間:2020-10-29 20:05:26 來源:億速云 閱讀:194 作者:Leah 欄目:開發(fā)技術

JS如何實現(xiàn)禁用右鍵、禁用Ctrl+u、禁用Ctrl+s、禁用F12?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

第一種方法:

var arr = [123, 17, 18];
document.oncontextmenu = new Function("event.returnValue=false;"),//禁用右鍵
document.onselectstart = new Function("event.returnValue=false;"),//禁用選中
window.onkeydown = function (e) {
 var code = e.keyCode;
 if (arr.indexOf(code) > -1) {
  console.log("中招了", code);
  e.preventDefault();
 }
}, window.oncontextmenu = function (e) {
 e.preventDefault();
}

第二種方法:

var arr = [123, 17, 18];
document.oncontextmenu = new Function("event.returnValue=false;"),//禁用右鍵

window.onkeydown = function (e) {
 var keyCode = e.keyCode || e.which || e.charCode;
 var ctrlKey = e.ctrlKey || e.metaKey;
 console.log(keyCode + "--" + keyCode);
 if (ctrlKey && keyCode == 85) {
  console.log("ctrl+u");
  e.preventDefault();
 }
 if (arr.indexOf(keyCode) > -1) {
  console.log("其他");
  e.preventDefault();
 }
 //e.preventDefault();
 //return false;
}

網頁如何禁止鼠標右鍵和F12,鍵盤另存為、粘貼、復制事件

最近做的商用后臺項目涉及到前端加密技術,為了保證前端頁面展示的數(shù)據(jù)不被竊取,所以在js上做了一些處理,這些處理并不能完全杜絕有心之人竊取數(shù)據(jù),只是加大他們操作的難度而已。

1.禁止瀏覽器右鍵事件。使用瀏覽器右鍵可以將網頁保存下來,或者審查網頁源代碼,這是我們想避免的(當然,仍然可以通過瀏覽器右上角的工具欄打開開發(fā)者工具,這里可以判斷下鼠標的光標位置,如果光標移動到導航欄及頁面body之外的地方,我們可以選擇把頁面展示的元素清空,這樣在控制臺看見的源代碼也沒有展示出來的數(shù)據(jù)了)。

js實現(xiàn):

<!DOCTYPE html>
<html>
<head>
 <meta charset="UTF-8">
 <title>禁止鼠標右鍵事件</title>
</head>
<body>
<p>這里是一些內容,展示禁止鼠標右鍵事件
</p>
</body>
<script>
 document.oncontextmenu = function(){
  return false;
 }
</script>
</html>

jquery實現(xiàn):

<!DOCTYPE html>
<html>
<head>
 <meta charset="UTF-8">
 <title>禁止鼠標右鍵事件</title>
</head>
<body>
<p>這里是一些內容,展示禁止鼠標右鍵事件
</p>
</body>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script>
 $(function(){
  $(document).contextmenu(function() {
   return false
  })
 });
</script>
</html>

2.禁止F12事件,鍵盤的選擇粘貼復制事件

jquery實現(xiàn):

<!DOCTYPE html>
<html>
<head>
 <meta charset="UTF-8">
 <title>禁止鍵盤粘貼復制</title>
</head>
<body>
<p>這里是一些內容
</p>
</body>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script>
 function forbidKeyboard() {
  $(document).keydown(function(e) {
   /*9:Tab鍵, 17:Control鍵, 18:Alt鍵, 123:F12鍵, 83:S鍵*/
   var keyboardCode = [9, 17, 18, 123];
   for (i in keyboardCode) {
    if (keyboardCode[i] == e.keyCode) {
     return false;
    }
   }
   if ((e.keyCode == 83) && (e.ctrlKey || e.metaKey)) {
    return false;
   }
  });
  /*禁止文本選擇功能*/
  $(document).bind("selectstart",function(){return false;});
 }
 $(function(){
  forbidKeyboard();
 });
</script>
</html>

js實現(xiàn):

<!DOCTYPE html>
<html>
<head>
 <meta charset="UTF-8">
 <title>js禁止f12事件</title>
 <script>
  window.onload = function(){
   document.onkeydown = function(event){
    var ev = event || window.event || arguments.callee.caller.arguments[0];
    //123 代表F12鍵
    if(event.keyCode = 123){
     return false;
    }
   }
  }
 </script>
</head>
<body>
<p>這里是一些內容</p>
</body>
</html>

js屏蔽chrome F12后頁面自動跳轉

function a() {
 window.location.href = "https://www.jb51.net/";
 return false
} 
 if (top.window.outerHeight - top.window.innerHeight > 150) {
  a()
 }
 if (top.window.outerWidth - top.window.innerWidth > 150) {
  a()
 }
};
r(document).keydown(function() {
 return y(arguments[0])
});
 
function y(r) {
 var o;
 if (window.event) {
  o = r.keyCode
 } else if (r.which) {
  o = r.which
 }
 if (o == 123) {
  e.larryCmsError("說好的demo版本只演示 不允許F12哦!", e.larryCore.tit);
  return false
 }
 if (r.ctrlKey) {
  if (r.shiftKey && o == 73) {
   e.larryCmsError("說好的demo版本只演示 不允許ctrl+shift+I哦!", e.larryCore.tit);
   return false
  }
 }
 if (r.ctrlKey && o == 83) {
  e.larryCmsError("說好的demo版本只演示 不允許ctrl+s保存哦!", e.larryCore.tit);
  return false
 }
}

具體就是頁面加載后執(zhí)行s();判斷是不是有調試工具和按f12后觸發(fā)window.onresize判斷,和按鍵key判斷

看完上述內容,你們掌握JS如何實現(xiàn)禁用右鍵、禁用Ctrl+u、禁用Ctrl+s、禁用F12的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

js ct
AI