我会禁用我的 HTML 测试页上的一些按钮(F12、右键单击 和 Ctrl-U)。
我的代码有效,但是 F12 似乎是启用 并且,当他激活 时(我的意思是,当我按下并看到“分析页面”,Ctrl-U 开始工作)。
我在这里发布了 JavaScript 代码,以获取一些建议:
// DX MOUSE
//============
var message="";
function clickIE() {if (document.all) {(message);return false;}}
function clickNS(e) {if
(document.layers||(document.getElementById&&!document.all)) {
if (e.which==2||e.which==3) {(message);return false;}}}
if (document.layers)
{document.captureEvents(Event.MOUSEDOWN);document.onmousedown=clickNS;}
else{document.onmouseup=clickNS;document.oncontextmenu=clickIE;}
document.oncontextmenu=new Function("return false")
// F12
//==========
document.onkeypress = function (event) {
event = (event || window.event);
if (event.keyCode == 123) {
// alert('No F-12');
return false;
}
};
// CTRL + U
//==============
document.onkeydown = function(e) {
if (e.ctrlKey &&
(e.keyCode === 85)) {
// alert('not allowed');
return false;
}
};
P.S 如果我禁用“alert”:点击两次后,在 Mozilla 上出现popup 和代码停止工作。
最佳答案
最大的问题是为什么?
为什么要尝试阻止正常和众所周知的浏览器行为?如果您正在尝试保护您的前端源代码,那么这是没有办法的。任何高于入门级知识的人都可以绕过这个。
一个更简单的解决方案是缩小和丑化您的 JS,而且它更有效。这绝不是防弹的,有人仍然可以分解并弄清楚你的代码是如何工作的,但你让他的工作变得更加困难。
与后端的所有交互都不应该在前端受到保护(至少不是唯一的保护手段),在后端对数据和操作进行清理,在那里您可以控制环境并确保代码和数据完好无损.
前面的一切都是暴露的,没有什么是安全的,对待它的信息就像对待从 Angular 落里卖可卡因的黑手处获得的信息一样。
话虽这么说,让我们来回答这个问题:
$(document).keydown(function (event) {
if (event.keyCode == 123) {
return false;
}
});
如果你仍然坚持这样做,你可能想添加到上面的函数中:
if (event.ctrlKey && event.shiftKey && event.keyCode == 73) {
return false;
}
防止ctrl shift i
并且还在其中的某个地方通过调用 preventDefault()
来阻止 contextmenu
事件发生;
关于javascript - 禁用按钮 (F12),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48461344/