【问题标题】:Keycode for Print Screen (44 is not working)打印屏幕的键码(44 不起作用)
【发布时间】:2015-08-05 14:16:03
【问题描述】:

所以我想测试我网站的访问者是否按下了 Print Screen 按钮。

尽管我一直在寻找,但没有找到如何做到这一点的信息。我发现的是,ir 应该是 keyCode == 44。

我尝试了所有其他按钮都没有问题。

我的错误在哪里?

这里是输入按钮的类似工作代码:

window.addEventListener("keydown", checkKeyPressed, false);

function checkKeyPressed(e) {
    if (e.keyCode == "13") {
        alert("The 'enter' key is pressed.");
    }
}

【问题讨论】:

  • mac有不同的截图方式
  • 点击key会得到什么? console.log(e.keyCode); 没有 if 语句 ofcause。
  • 我得到 124(Mac/意大利语键盘),但似乎没有关于这个确切 keyCode 的标准

标签: javascript event-listener keycode


【解决方案1】:
window.addEventListener("keyup", function(e) {
  if (e.keyCode == 44) {
    alert("The 'print screen' key is pressed");
  }
});

注意keyup 而不是keydown

老实说,我不知道为什么会这样而不是其他,但我认为这可能与操作系统在媒体上拦截它并(不知何故?)阻止事件有关。

【讨论】:

  • 我相信它,因为 keydown 会尽早捕捉到它以防止打印屏幕。
【解决方案2】:

根据本页评论:javascripter

在大多数浏览器中,按下 PrntScrn 键只会触发 keyup 事件。

所以你需要:

function checkKeyPressed(e) {
    if (e.keyCode == "44") {
        alert("The print screen button was pressed.");
    }
}

window.addEventListener("keyup", checkKeyPressed, false);

【讨论】:

  • 看来我太慢了。我会留下这个,因为它有链接
猜你喜欢
  • 2021-09-17
  • 2011-03-09
  • 1970-01-01
  • 1970-01-01
  • 2020-02-26
  • 2021-11-07
  • 2020-06-11
  • 2015-03-20
  • 1970-01-01
相关资源
最近更新 更多