是否有可能通过Javascript删除或禁用Chrome应用程序中的“检查元素”上下文菜单?
我在几个论坛上搜索过,但没有明确的答案。
是否有可能通过Javascript删除或禁用Chrome应用程序中的“检查元素”上下文菜单?
我在几个论坛上搜索过,但没有明确的答案。
是的,可以停止在浏览器中检查网站。
正如您所知,有三种方法可以在浏览器中检查网站:
我有解决方案适用于第1和第2种方式,这是JavaScript代码,但用户使用第3种方式的情况非常罕见。
// take body to change the content
const body = document.getElementsByTagName('body');
// stop keyboard shortcuts
window.addEventListener("keydown", (event) => {
if(event.ctrlKey && (event.key === "S" || event.key === "s")) {
event.preventDefault();
body[0].innerHTML = "sorry, you can't do this "
}
if(event.ctrlKey && (event.key === "C")) {
event.preventDefault();
body[0].innerHTML = "sorry, you can't do this "
}
if(event.ctrlKey && (event.key === "E" || event.key === "e")) {
event.preventDefault();
body[0].innerHTML = "sorry, you can't do this "
}
if(event.ctrlKey && (event.key === "I" || event.key === "i")) {
event.preventDefault();
body[0].innerHTML = "sorry, you can't do this ";
}
if(event.ctrlKey && (event.key === "K" || event.key === "k")) {
event.preventDefault();
body[0].innerHTML = "sorry, you can't do this ";
}
if(event.ctrlKey && (event.key === "U" || event.key === "u")) {
event.preventDefault();
body[0].innerHTML = "sorry, you can't do this ";
}
});
// stop right click
document.addEventListener('contextmenu', function(e) {
e.preventDefault();
});
<script language="javascript">
document.onmousedown=disableclick;
status="Right Click Disabled";
function disableclick(event)
{
if(event.button==2)
{
alert(status);
return false;
}
}
</script>
在Next.js中,你可以将这段代码放在_app.tsx
或_app.js
文件中,并使用e.key而不是e.keyCode,因为它已被弃用。
useEffect(() => {
typeof window !== undefined &&
window.document.addEventListener("contextmenu", (e) => {
e.preventDefault();
});
}, []);
document.onkeydown = function(e) {
console.log(e.key)
if(e.key === 'F12') {
return false;
}
if(e.ctrlKey && e.shiftKey && e.key === 'I') {
return false;
}
if(e.ctrlKey && e.shiftKey && e.key === 'C') {
return false;
}
if(e.ctrlKey && e.shiftKey && e.key === 'J') {
return false;
}
if(e.ctrlKey && e.key === 'u') {
return false;
}
}
你不能阻止它,但你可以停止一些键:
将以下内容添加到你的脚本中:
<script>
document.addEventListener('contextmenu', function(e) {
e.preventDefault();
});
document.addEventListener('keydown', function(e) {
if (event.keyCode == 123) {
return false;
}
if (e.ctrlKey && e.shiftKey) {
return false;
}
if (event.ctrlKey && event.keyCode == 85) {
return false;
}
});
/* other script code */
</script>
试试这个:
document.onkeydown = function(e) {
if(event.keyCode == 123) {
return false;
}
if(e.ctrlKey && e.shiftKey && e.keyCode == 'I'.charCodeAt(0)){
return false;
}
if(e.ctrlKey && e.shiftKey && e.keyCode == 'J'.charCodeAt(0)){
return false;
}
if(e.ctrlKey && e.keyCode == 'U'.charCodeAt(0)){
return false;
}
if(e.ctrlKey && e.keyCode == 'C'.charCodeAt(0)){
return false;
}
if(e.ctrlKey && e.keyCode == 'X'.charCodeAt(0)){
return false;
}
if(e.ctrlKey && e.keyCode == 'Y'.charCodeAt(0)){
return false;
}
if(e.ctrlKey && e.keyCode == 'Z'.charCodeAt(0)){
return false;
}
if(e.ctrlKey && e.keyCode == 'V'.charCodeAt(0)){
return false;
}
if (e.keyCode == 67 && e.shiftKey && (e.ctrlKey || e.metaKey)){
return false;
}
if (e.keyCode == 'J'.charCodeAt(0) && e.altKey && (e.ctrlKey || e.metaKey)){
return false;
}
if (e.keyCode == 'I'.charCodeAt(0) && e.altKey && (e.ctrlKey || e.metaKey)){
return false;
}
if ((e.keyCode == 'V'.charCodeAt(0) && e.metaKey) || (e.metaKey && e.altKey)){
return false;
}
if (e.ctrlKey && e.shiftKey && e.keyCode == 'C'.charCodeAt(0)){
return false;
}
if(e.ctrlKey && e.keyCode == 'S'.charCodeAt(0)){
return false;
}
if(e.ctrlKey && e.keyCode == 'H'.charCodeAt(0)){
return false;
}
if(e.ctrlKey && e.keyCode == 'A'.charCodeAt(0)){
return false;
}
if(e.ctrlKey && e.keyCode == 'F'.charCodeAt(0)){
return false;
}
if(e.ctrlKey && e.keyCode == 'E'.charCodeAt(0)){
return false;
}
}
if (document.addEventListener) {
document.addEventListener('contextmenu', function(e) {
e.preventDefault();
}, false);
}else{
document.attachEvent('oncontextmenu', function() {
window.event.returnValue = false;
});
}
document.addEventListener('keydown', function() {
if (event.keyCode == 123) {
alert("You Can not Do This!");
return false;
} else if (event.ctrlKey && event.shiftKey && event.keyCode == 73) {
alert("You Can not Do This!");
event.preventDefault();
return false;
} else if (event.ctrlKey && event.keyCode == 85) {
alert("You Can not Do This!");
return false;
}
}, false);
if (document.addEventListener) {
document.addEventListener('contextmenu', function(e) {
alert("You Can not Do This!");
e.preventDefault();
}, false);
} else {
document.attachEvent('oncontextmenu', function() {
alert("You Can not Do This!");
window.event.returnValue = false;
});
}
pointer-events: none;
来禁用单个元素的检查元素功能。很简单,只需按下F6,然后再按下F12。