使用JS代码实现禁用右键、禁用Ctrl+u、禁用Ctrl+s、禁用F12

在前端开发项目过程中,经常需要屏蔽客户端的一些操作,从而加大查看源码等难度,所以有必要整理一下这些 js 功能,同时也防止客户端用户误操作,破解方法也很简单这里就不多说了。

先来两个简单粗暴的

第一个常用的函数代码:

function keycodes(){
 // 禁止右键
 document.oncontextmenu=function(){return false};
 document.onkeydown = function(e) {
   e = window.event || e;
   var k = e.keyCode;
   //屏蔽 ctrl+u,F12 键
   if ((e.ctrlKey == true && k == 85) || k == 123) {
     e.keyCode = 0;
     e.returnValue = false;
     e.cancelBubble = true;
     return false;
   }
 }
}

第二种方法:

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;
}

一些常用的代码

1. 实现禁止选中文字。

//网站禁止选择文字
document.body.onselectstart = function() {
  self.event.returnValue=false
};

2. 实现禁止鼠标右键。

//网站禁止右键
document.body.oncontextmenu = function() {
  self.event.returnValue=false
};

3. 实现禁止 F12 审查元素。

//按键触发
document.onkeydown = function(){
  //禁止 F12
  if (window.event && window.event.keyCode == 123) {
    event.keyCode = 0;
    event.returnValue = false;
  }
}

4. 实现禁止 Ctrl+U 查看源代码。

//按键触发
document.onkeydown = function(){
  //禁止 ctrl+u
  if (event.ctrlKey && window.event.keyCode==85){
    return false;
  }
}

5. 实现禁止 Ctrl+S 网页另存为。

//按键触发
document.onkeydown = function(){
  //禁止 ctrl+s
  if (event.ctrlKey && window.event.keyCode==83){
    return false;
  }
}

6. 实现禁止 F5 刷新页面。

//按键触发
document.onkeydown = function(){
  //禁止 F5 
  if (window.event && window.event.keyCode == 116) {
    event.keyCode = 0;
    event.returnValue = false;
  }
}

当然,如果想同时实现以上的几种效果,代码如下:

//按键触发
document.onkeydown = function(){
  //禁止 ctrl+u
  if (event.ctrlKey && window.event.keyCode==85){
    return false;
  }
  //禁止 F12
  if (window.event && window.event.keyCode == 123) {
    event.keyCode = 0;
    event.returnValue = false;
  }
  //禁止 ctrl+s
  if (event.ctrlKey && window.event.keyCode==83){
    return false;
  }
  //禁止 F5 
  if (window.event && window.event.keyCode == 116) {
    event.keyCode = 0;
    event.returnValue = false;
  }
}
//网站禁止右键
document.body.oncontextmenu = function() {
  self.event.returnValue=false
};
//网站禁止选择文字
document.body.onselectstart = function() {
  self.event.returnValue=false
};

网页禁止右键相关行为代码:禁止复制、禁止 F12、禁止 ctrl+u、网站禁止右键

防止网站文章被转载的一些常规方法,禁止复制、禁止 F12、禁止 ctrl+u、网站禁止右键;但是这些只是做了一层防护,应对普通的新手编辑足够了,如果别人真想复制你网站的内容,还是有其他方法可以进行复制粘贴的。

下面是代码:

$("body").bind('copy', function (e) {
  var body_element = document.getElementsByTagName('body')[0];
  var selection = window.getSelection();
  var newdiv = document.createElement('div'); newdiv.style.position = 'absolute';
  newdiv.style.left = '-99999px';
  body_element.appendChild(newdiv);
  newdiv.appendChild(selection.getRangeAt(0).cloneContents());
  newdiv.innerHTML = "\u539f\u6587\uff1a<a href='" + document.location.href + "'>" + document.location.href + "</a>\u53d7\u539f\u521b\u534f\u8bae\u4fdd\u62a4\uff0c\u6d4f\u89c8\u5668\u6682\u4e0d\u652f\u6301\u590d\u5236\u7c98\u8d34";
  selection.selectAllChildren(newdiv); window.setTimeout(function () { body_element.removeChild(newdiv) }, 200)
});

上述代码是当选中页面文字,按 ctrl+c 键进行复制时,会弹出提示框阻止复制操作。

其中,

  • document.location.href为当前页面 url;
  • \u539f\u6587\uff1a 进行了 Unicode 编码了的中文字符,转码过来就是“原文:”;
  • \u53d7\u539f\u521b\u534f\u8bae\u4fdd\u62a4\uff0c\u6d4f\u89c8\u5668\u6682\u4e0d\u652f\u6301\u590d\u5236\u7c98\u8d34 同样的是 Unicode 编码后的字符串,中文意思为:受原创协议保护,浏览器暂不支持复制粘贴 ;
//按键触发
document.onkeydown = function(){
  //禁止 ctrl+u
  if (event.ctrlKey && window.event.keyCode==85){
    return false;
  }
  //禁止 F12
  if (window.event && window.event.keyCode == 123) {
    event.keyCode = 0;
    event.returnValue = false;
  }
}
//网站禁止右键
document.body.oncontextmenu = function() {
  self.event.returnValue=false
};

上面代码是当按下相关按键或者按下鼠标右键触发的提示。

THE END