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

Fla*_*ash 8 javascript ctrl shift keydown

我一直想知道我是否可以在不使用keydown事件的情况下检测CTRLSHIFT按下键.

原因是我在JavaScript中创建了某种Grid Viewer,并且我实现了通过按住CTRLSHIFT键来选择不同的项目,因为它在大多数常见的查看器,编辑器等中起作用.

问题是当焦点不在页面的任何地方时.例如,我正在向书签添加页面.然后我按住CTRLSHIFT单击该项目,但它正常运行,因为没有触发keydown.

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

Tee*_*emu 17

您根本不需要任何关键事件来检测Shift,Ctrl并且Alt单击鼠标时MDN.

Event对象包含以下信息:

element.addEventListener('click', function (e) {
    console.log(e.shiftKey);
    console.log(e.ctrlKey);
    console.log(e.altKey);
});
Run Code Online (Sandbox Code Playgroud)

在jsFiddle演示.

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