我在这里看到了一些类似的问题(比如JavaScript: Check if CTRL button was pressed),但我的问题实际上是事件触发。我的js代码:
// Listen to keyboard.
window.onkeypress = listenToTheKey;
window.onkeyup = listenToKeyUp;
/*
Gets the key pressed and send a request to the associated function
@input key
*/
function listenToTheKey(e)
{
if (editFlag == 0)
{
// If delete key is pressed calls delete
if (e.keyCode == 46)
deleteNode();
// If insert key is pressed calls add blank
if (e.keyCode == 45)
createBlank();
if (e.keyCode == 17)
ctrlFlag = 1;
}
}
除了 ctrl 之外的任何其他键的事件触发 我还需要为 ctrl 触发它 我无法使用jQuery / prototype /,所以这些解决方案是不可接受的。
那么......我怎样才能检测到 ctrl ?
答案 0 :(得分:45)
尝试使用if (e.ctrlKey)
。
答案 1 :(得分:16)
您的活动有一个名为ctrlKey的属性。您可以检查此项以查看是否按下了该键。请参阅下面的代码段,了解更多控件,例如按键。
function detectspecialkeys(e){
var evtobj=window.event? event : e
if (evtobj.altKey || evtobj.ctrlKey || evtobj.shiftKey)
alert("you pressed one of the 'Alt', 'Ctrl', or 'Shift' keys")
}
document.onkeypress=detectspecialkeys
答案 2 :(得分:13)
使用onkeydown而不是onkeypress可能有所帮助。
来自http://www.w3schools.com/jsref/event_onkeypress.asp
注意:不会为所有键触发onkeypress事件(例如ALT,CTRL, 所有浏览器中的SHIFT,ESC)。仅检测用户是否具有 按下一个键,改为使用onkeydown事件,因为它适用于 所有的钥匙。