使用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 };
上面代码是当按下相关按键或者按下鼠标右键触发的提示。
版权声明:
作者:隔壁小色
链接:https://www.fanooo.com/archives/876
文章版权归作者所有,未经允许请勿转载。
THE END