【问题标题】:Capturing Ctrl-Alt-Del in JavaScript/jQuery在 JavaScript/jQuery 中捕获 Ctrl-Alt-Del
【发布时间】:2011-02-17 23:13:02
【问题描述】:

在使用 jQuery/JavaScript 时,我遇到了这个问题。我可以捕获 AltCtrl 键,但不能捕获 Del,当然也不能同时捕获它们。

$(document).ready(function() {
    $("#target").keydown(function(event) {
        if (event.ctrlKey && event.altKey && event.keyCode == '46') {
            alter("Ctrl-Alt-Del combination");
        }
    });
});

是否可以同时捕获所有这三个键?

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    我不确定其他操作系统,但我知道在 Windows 上,Ctrl+Alt+Del 是系统击键,它总是在顶层被 Windows 拦截。据我所知,它并没有从那里进一步传递,让你知道它所产生的任何东西都是官方的。

    我知道对于 Gnome(我相信 KDE),点击它会拉出关闭对话框,因此会被窗口管理器捕获,而不是传递。

    因此,除非 Mac 直接忽略它,否则您无法获得该特定组合,因为它对操作系统具有魔力。

    编辑:我注意到了,你的代码中有alter 而不是alert。我不认为它会像那样工作。

    【讨论】:

    • 那是一个错字。我输入了那个代码。 :) - 感谢您的回复。很高兴知道这是不可能的。
    • Mac 并没有真正的del 键,所以它对 Mac 也没有意义。
    • @shosti:不正确。 Mac 在全尺寸键盘上确实有“delete=>”键。在较小的键盘上,可以使用 fn+backspace 按下它(在某些苹果键盘布局中,backspace 被称为“删除”)
    【解决方案2】:

    我认为这是不可能的。

    您会看到,各种用户输入,无论是通过键盘、鼠标还是任何 IO 设备,都会通过 Windows 以消息的形式传递给您的应用程序。但是,有一些专用消息在 Windows 操作系统级别被捕获和处理。 Ctrl+Alt+Del 就是这样一种操作。 Windows 不会再传递此消息。

    【讨论】:

      【解决方案3】:
      【解决方案4】:

      经过搜索,我找到了这个,http://www.quirksmode.org/js/keys.html 它基本上说不同的浏览器和不同的操作系统会对 del 键产生不同的行为。如果在Windows上使用Alt+Ctrl+Del,Windows会在检测到之前显示任务管理器,失去焦点,C+A+D是未检测到。

      【讨论】:

        猜你喜欢
        • 2014-01-09
        • 2011-05-05
        • 1970-01-01
        • 2013-02-01
        • 2014-09-12
        • 2023-01-27
        • 1970-01-01
        • 1970-01-01
        • 2012-07-11
        相关资源
        最近更新 更多