javascript-检测ctrl键被按下或向上,按键事件不';t触发器

javascript-检测ctrl键被按下或向上,按键事件不';t触发器,javascript,ctrl,Javascript,Ctrl,我在这里看到了一些类似的问题(比如),但我的问题实际上是事件触发。我的js代码: // Listen to keyboard. window.onkeypress = listenToTheKey; window.onkeyup = listenToKeyUp; /* Gets the key pressed and send a request to the associated function @input key

我在这里看到了一些类似的问题(比如),但我的问题实际上是事件触发。我的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?

尝试使用
if(e.ctrlKey)

尝试使用
if(e.ctrlKey)


您的事件有一个名为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

您的事件具有名为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

使用onkeydown而不是onkeypress可能会有所帮助

注意:不会对所有键(例如ALT、CTRL、, 所有浏览器中的SHIFT、ESC)。仅检测用户是否有 按下一个键,改用onkeydown事件,因为它适用于 所有的钥匙


使用onkeydown而不是onkeypress可能会有所帮助

注意:不会对所有键(例如ALT、CTRL、, 所有浏览器中的SHIFT、ESC)。仅检测用户是否有 按下一个键,改用onkeydown事件,因为它适用于 所有的钥匙

这个:if(e.ctrlKey){…}行吗?这个:if(e.ctrlKey){…}行吗。。?