ESC密钥狩猎问题

时间:2018-04-11 15:37:56

标签: javascript

有没有更好的方法重做下面的代码?更好的方法?当用户点击ESC键时,我需要页面将它们重定向回他们的主页(仪表板屏幕)。

我遇到了Safari浏览器的问题。当Safari中的用户点击ESC键时 - 我的服务器正在阻止他们的IP地址(有点像暴力保护标志),我认为这是因为它试图一遍又一遍地刷新页面而不将人员送回他们的仪表板。

以下代码在Chrome和Firefox中效果很好......

var keyPressed = {};

document.addEventListener('keydown', function(e) {
  keyPressed[e.keyCode] = true;
}, false);

document.addEventListener('keyup', function(e) {
  keyPressed[e.keyCode] = false;
}, false);

function goToControls() {
  if (keyPressed["27"]) {
    window.location.href = 'home.php';
  }

  setTimeout(goToControls, 5);
}

goToControls();

1 个答案:

答案 0 :(得分:1)

我使用了以下内容,现在看起来很开心!

document.onkeydown = function(evt) {
    evt = evt || window.event;
    var isEscape = false;
    if ("key" in evt) {
        isEscape = (evt.key == "Escape" || evt.key == "Esc");
    } else {
        isEscape = (evt.keyCode == 27);
    }
    if (isEscape) {
        alert("Escape");
    }
};