网页:检测并阻止某些键盘快捷键

时间:2011-06-19 16:39:02

标签: javascript html javascript-events keyboard-shortcuts

我想检测并阻止网页上的某些键盘快捷键。例如,假设我想阻止alt-tab切换应用程序(只是一个例子,假设任何全局快捷方式)

据我所知,这是:

  • 将键盘事件监听器附加到 document(或window?)
  • 使用event.which检查哪个键 组合被按下
  • 如果是黑名单的快捷方式, 停止浏览器执行它

但是,我不知道如何 A)检测多个密钥 (例如alttab),或者 B)阻止他们执行(我可以return false吗?)。

有人能告诉我如何完成上述工作吗? 谢谢!

3 个答案:

答案 0 :(得分:5)

您想阻止截屏吗?忘了它现在

无论您采用何种复杂的机制,通过取消对焦浏览器窗口(或仅仅是文档,例如通过点击地址栏),然后按屏幕截图键,它们将是微不足道的。

除非在控制用户操作的计算机上安装客户端软件,否则您无法执行此操作,或可能使用某些专有ActiveX控件使其内容无法打印屏幕。这两种方法都非常困难,并且有很多缺点。

答案 1 :(得分:1)

无法阻止属于操作系统的键盘组合。只有在浏览器内漫游并且不是特定于操作系统的键盘组合。

如果您想保护您的内容不公开发布。的 Or put a decent license on it

答案 2 :(得分:1)

// lookup table for keycodes
var key = { s: 83 };

document.onkeydown = function (e) {
  // normalize event
  e = e || window.event;

  // detecting multiple keys, e.g: Ctrl + S
  if (e.ctrlKey && !e.altKey && e.keyCode === key.s) {
    // prevent default action
    if (e.preventDefault) {
      e.preventDefault();
    }
    // IE
    e.returnValue = false;
  }
};

Detecting Keystrokes Compatibility Table QuirksMode