在一次工作中,所做的项目要求页面中不能右击,不能打开F12。一般来说可以禁用F12的按键,但是可以通过开发者工具进入。经过个人实验,以下方法适用于谷歌浏览器、火狐浏览器,以及使用谷歌内核的浏览器(如QQ浏览器、搜狗浏览器等),IE忘了是否支持,自我感觉是目前比较齐全的了。
-
//禁止鼠标右击
-
document.
oncontextmenu =
function(
) {
-
event.
returnValue =
false;
-
};
-
//禁用开发者工具F12
-
document.
onkeydown =
document.
onkeyup =
document.
onkeypress =
function(
event) {
-
let e = event ||
window.
event ||
arguments.
callee.
caller.
arguments[
0];
-
if (e && e.
keyCode ==
123) {
-
e.
returnValue =
false;
-
return
false;
-
}
-
};
-
let userAgent = navigator.
userAgent;
-
if (userAgent.
indexOf(
"Firefox") > -
1) {
-
let checkStatus;
-
let devtools =
/./;
-
devtools.
toString =
function(
) {
-
checkStatus =
"on";
-
};
-
setInterval(
function(
) {
-
checkStatus =
"off";
-
console.
log(devtools);
-
console.
log(checkStatus);
-
console.
clear();
-
if (checkStatus ===
"on") {
-
let target =
"";
-
try {
-
window.
open(
"about:blank", (target =
"_self"));
-
}
catch (err) {
-
let a =
document.
createElement(
"button");
-
a.
onclick =
function(
) {
-
window.
open(
"about:blank", (target =
"_self"));
-
};
-
a.
click();
-
}
-
}
-
},
200);
-
}
else {
-
//禁用控制台
-
let
ConsoleManager = {
-
onOpen:
function(
) {
-
alert(
"Console is opened");
-
},
-
onClose:
function(
) {
-
alert(
"Console is closed");
-
},
-
init:
function(
) {
-
let self =
this;
-
let x =
document.
createElement(
"div");
-
let isOpening =
false,
-
isOpened =
false;
-
Object.
defineProperty(x,
"id", {
-
get:
function(
) {
-
if (!isOpening) {
-
self.
onOpen();
-
isOpening =
true;
-
}
-
isOpened =
true;
-
return
true;
-
}
-
});
-
setInterval(
function(
) {
-
isOpened =
false;
-
console.
info(x);
-
console.
clear();
-
if (!isOpened && isOpening) {
-
self.
onClose();
-
isOpening =
false;
-
}
-
},
200);
-
}
-
};
-
ConsoleManager.
onOpen =
function(
) {
-
//打开控制台,跳转
-
let target =
"";
-
try {
-
window.
open(
"about:blank", (target =
"_self"));
-
}
catch (err) {
-
let a =
document.
createElement(
"button");
-
a.
onclick =
function(
) {
-
window.
open(
"about:blank", (target =
"_self"));
-
};
-
a.
click();
-
}
-
};
-
ConsoleManager.
onClose =
function(
) {
-
alert(
"Console is closed!!!!!");
-
};
-
ConsoleManager.
init();
-
}