按下 Enter JavaScript 时的事件

event on pressing enter javascript

本文关键字:事件 JavaScript Enter 按下      更新时间:2023-09-26

每当我按下向上或向下按钮时,我都可以检查是否按下了这些键,例如,此处将触发警报:

 if ((38 in keysDown) ) { // Player holding up
       window.alert("up button was pressed");
 }

 if ((40 in keysDown) ) { // Player holding down
       window.alert("down button was pressed");
 }

但在这里,即使我按回车提醒也无法播放

if ((13 in keysDown) ) { // player pushed on enter
       window.alert("enter key was pressed"); // here nothing happen
}

我在开头使用这 3 行来添加事件列表器:

   keysDown = {};
   addEventListener("keydown", function (e) {keysDown[e.keyCode] = true;}, false);
   addEventListener("keyup", function (e) {delete keysDown[e.keyCode];}, false);

但是由于我不知道的某种原因,回车键不起作用问题发生在火狐上,在Chrome和IE上工作正常

提前谢谢。

编辑我找出了问题,我使用的画布没有焦点,所以输入按钮不起作用,any1 可以告诉我如何切换焦点吗?

编辑我找出了问题,我正在使用的画布没有 焦点,所以输入按钮不起作用,any1 可以告诉我如何切换吗 重点?

确定。
如何将焦点设置为 HTML5 画布元素?

甚至更好:

1-选项卡索引:

$("#canvas")
    // Add tab index to ensure the canvas retains focus
    .attr("tabindex", "0")
    // Mouse down override to prevent default browser controls from appearing
    .mousedown(function(){ $(this).focus(); return false; }) 
    .keydown(function(){ /* ... bla bla bla ... */ return false; });

2-设置内容可编辑为真:

// Add content editable to help ensure the canvas retains focus
$("#canvas").attr("contentEditable", "true")
$("#canvas")[0].contentEditable = true;

来源:如何使用 jquery 为 HTML 画布提供键盘焦点?

输入的键代码是 13。

以下是检测按 Enter 键的简单事件方法:

编辑:I用更简单的东西编辑了我的帖子:

    function check() {
        if (window.event.keyCode == 13) {
            document.write("Enter pressed");
        }
    }
<body onkeypress="check()">
</body>

Firefox中使用event.which,在IE中使用event.keyCode