是否可以通过Javascript删除或禁用Chrome应用中的“检查元素”上下文菜单?
我搜索了几个论坛,但没有明确的答案。
答案 0 :(得分:12)
我对一个页面有一个要求。在该页面中,我想阻止用户执行以下操作,
为此我用Google搜索,最后得到以下链接,
http://andrewstutorials.blogspot.in/2014/03/disable-ways-to-open-inspect-element-in.html
我使用Chrome浏览器&火福兹。它符合我的要求。
右键单击
`<body oncontextmenu="return false;">`
<强>键强>
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 == 'C'.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;
}
}
答案 1 :(得分:6)
可以通过右键单击(javascript):
来阻止用户打开上下文菜单document.addEventListener('contextmenu', function(e) {
e.preventDefault();
});
通过收听contextmenu
事件并阻止“显示菜单”的默认行为,菜单将不会显示。
但是用户仍然可以通过控制台检查代码(例如,按Chrome中的F12)。
答案 2 :(得分:2)
不。你可以做的最近的是捕获右键单击,并使它们不打开上下文菜单,但精明的用户将知道键盘组合或菜单选项,无论如何都要访问它,打败了这一点。这是浏览器的一项功能,因此您在页面中所做的任何事情都不会打败它(不如在计算机上安装恶意软件)。
答案 3 :(得分:2)
您不能。
网页上的所有内容均由浏览器呈现,他们希望网站在其上正常运行,否则他们的用户会鄙视它们。 因此,浏览器希望通过代码检查器之类的工具向Web开发人员展示所有较低级别的滴答声。
您可以尝试通过按键事件阻止用户进入菜单。像这样:
// Disable inspect element
$(document).bind("contextmenu",function(e) {
e.preventDefault();
});
$(document).keydown(function(e){
if(e.which === 123){
return false;
}
});
但是,如果用户想查看代码,则将以另一种方式来执行。他只需要一点时间。
简短:如果您不希望人们在他们的浏览器中获得任何东西,那么您首先不应将其发送到他们的浏览器。
答案 4 :(得分:1)
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!");
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;
});
}
没有 F12 没有右键单击
嗨 我用这个代码。 玩得开心♥
答案 5 :(得分:0)
<script language="javascript">
document.onmousedown=disableclick;
status="Right Click Disabled";
function disableclick(event)
{
if(event.button==2)
{
alert(status);
return false;
}
}
</script>
答案 6 :(得分:0)
虽然没有答案,但Chrome当然可以做到这一点,但我似乎正在进行A / B测试,因为我的工作帐户无法在Gmail中进行检查,而我的个人帐户却可以。
我已经搜索了df_movies_as_features = train_df.pivot(index = 'userId', columns =
'movieId',values = 'rating' )
标签或HTTP标头,这些标签或标签可能控制着它,但是没有什么引人注目
答案 7 :(得分:0)
如果对任何人都有用,可以通过向其添加样式pointer-events: none;
来禁用单个元素的Inspect Element。
如果您有任何纯粹用于对齐子元素的元素,这很有必要,这些子元素必须与大量更有用的元素重叠;它使您可以防止对齐器元素响应“检查元素”命令。
答案 8 :(得分:0)
将此添加到页面的html标签
<html oncontextmenu="return false">
答案 9 :(得分:0)
可能是 kinda 。
首先,使用ramakrishna's解决方案阻止devtools快捷键。
将devtools-detect添加到您的网站。这是来自他的github的devtools.js文件的快速链接。
然后,最后添加以下内容:
if (devtools.isOpen) {
setInterval(() => {
var $all = document.querySelectorAll("*");
for (var each of $all) {
each.classList.add(`asdjaljsdliasud8ausdijaisdluasdjasildahjdsk${Math.random()}`);
}
}, 5);
}
基本上,它将使DOM重载,并使其无法通过devtools与之交互。
此外,这只是一个示例:您可以使用更复杂的方法来重载DOM,而不仅仅是添加类。
我认为它不会完美地工作,但它至少足以提供一些额外的“安全性”小层次。
答案 10 :(得分:0)
你不能阻止它,但你可以阻止一些键:
将此添加到您的脚本中:
<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>
答案 11 :(得分:0)
以上答案是完美的,但在按下 ctrl+shift+I 时会出现一些问题。在之前的答案中,它仍然打开检查。通过添加 event.preventdefault() 解决这个问题
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;
});
}
答案 12 :(得分:0)
是的,可以停止在浏览器中检查网站。 如您所知,可以通过三种方法在浏览器中检查网站
我有 1 和 2 的解决方案,这里是 JavaScript 代码 但用户用户第三种方式是非常罕见的情况
// 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();
});