javascript - 禁用按钮 (F12)

标签 javascript jquery button keyboard

我会禁用我的 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/

相关文章:

javascript - 在另一个 JS 文件中调用同名函数

jquery - div 的淡出时间

javascript - jQuery - 一次调用中的多个选择器和多个值

Android 2底部按钮并排

JavaScript 通过按钮删除 li 元素

javascript - 如何匹配但排除正则表达式模式?

由于缓存的 JS 文件,JavaScript 函数无法正常工作

jQuery 自定义弹出问题

javascript - 单击时更新表值和时间戳

javascript - 如何使用 Meteor.js 中的模板助手遍历对象中的两个数组