在没有keydown事件的情况下检测CTRL和SHIFT键?

时间:2013-08-19 14:37:30

标签: javascript keydown shift ctrl

我一直想知道是否可以在没有使用keydown事件的情况下检测到 CTRL SHIFT 键。

原因是我在JavaScript中创建了某种Grid Viewer,并且我通过按住 CTRL SHIFT 键来实现选择不同的项目,因为它在最常见的情况下起作用观众,编辑等。

问题在于焦点不在页面的任何位置。例如,我正在向书签添加页面。然后我按住 CTRL SHIFT 并单击该项目,但是当keydown没有被触发时它会正常工作。

有什么方法可以省略吗?也许不是,但对于将其视为我自己明显的Bug的客户而言,这可能会令人困惑。

1 个答案:

答案 0 :(得分:17)

单击鼠标时,您根本不需要任何关键事件来检测 Shift Ctrl Alt {{ 3}}

Event对象包含以下信息:

element.addEventListener('click', function (e) {
    console.log(e.shiftKey);
    console.log(e.ctrlKey);
    console.log(e.altKey);
});

MDN

这些属性也可以在键盘事件处理程序中读取。