没有keydown事件检测CTRL和SHIFT键?

问题描述:

我一直在想,如果我能检测到CTRLSHIFT键没有使用keydown事件按下。没有keydown事件检测CTRL和SHIFT键?

的原因是,我创建在JavaScript某种网格观察器,我实现通过按住CTRL SHIFT 关键,因为它在最普通的观众,编辑等功能选择不同的项目。

问题是,当焦点不在页面上的任何地方。例如,我将页面添加到书签。再将我抱CTRLSHIFT并单击该项目,但它的keydown没有被触发的正常动作。

任何省略这个的方法?也许不是,但对于那些将它视为我自己明显的Bug的客户来说,这可能会令人困惑。

+0

如果他们认为它是你的错误,那是他们的错。如果他们不想关注你的页面,他们不会得到你的功能 – Ian

+2

你也可以在'onclick'处理程序中检测这些键...... – Teemu

+1

@Teemu好点。我不知道为什么使用'keydown'事件。一切都应该在点击点进行检查 – Ian

你并不需要在所有的所有键事件检测按CtrlAlt键当鼠标点击MDN

的事件对象包含以下信息:

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

A demo at jsFiddle

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