禁用按钮(F12)

时间:2018-01-26 12:25:54

标签: 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;
        }
      };




PS如果我禁用&#34; 提醒 &#34;:点击两次后,弹出 Mozilla < / strong>并且代码停止工作。

1 个答案:

答案 0 :(得分:1)

最大的问题是为什么

为什么要尝试阻止正常和众所周知的浏览器行为?如果您正在尝试保护前端源,则无法继续。任何超过入门级知识的人都可以绕过这一点。

一个更简单的解决方案是缩小和丑化你的JS,它更有效。它绝不是防弹的,有人仍然可以分解和计算你的代码是如何工作的,但是你让他的工作变得更加困难。

无论如何,前端的所有交互都不应受到保护(至少不仅仅是保护手段),在后端进行数据清理和操作,您可以控制环境并确保代码和数据完好无损。

前面的一切都暴露出来,没有什么是安全的,对待它的信息就像你会从一个在角落里卖裂缝的阴暗的人那里得到的信息一样。

话虽如此,让我们回答这个问题:

$(document).keydown(function (event) {
    if (event.keyCode == 123) { 
        return false;
    }
});

如果你仍然坚持这样做,你可能想要加入上面的功能:

    if (event.ctrlKey && event.shiftKey && event.keyCode == 73) { 
        return false;
    }

防止ctrl shift i

并且在某个地方通过在contextmenu发生时调用preventDefault()来预防Backbone.ajax = function() { arguments[0].headers = { 'Accept': "application/json", 'Origin': "null" }; return Backbone.$.ajax.apply(Backbone.$, arguments); }; 事件;