使用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

