【问题标题】:How to emulate ESC keypress on a webpage by javascript?如何通过 javascript 在网页上模拟 ESC 按键?
【发布时间】:2012-08-09 11:59:24
【问题描述】:

如何通过javascript模拟网页上的ESC按键?

非常感谢您的帮助!

【问题讨论】:

标签: javascript keyboard


【解决方案1】:

由于该问题没有答案,因此here 提供了一个可能的解决方案。

function invokeEscKey() {
    var ev = document.createEvent('KeyboardEvent');
    ev.initKeyEvent(
        'keydown', true, true, window, false, false, false, false, 27, 0);
    document.body.dispatchEvent(ev);
}

【讨论】:

【解决方案2】:

使用 Javascript 模拟 Esc 键(在 Firefox 和 Chromium 中测试):

window.dispatchEvent(
            new KeyboardEvent("keydown", {
              altKey: false,
              code: "Escape",
              ctrlKey: false,
              isComposing: false,
              key: "Escape",
              location: 0,
              metaKey: false,
              repeat: false,
              shiftKey: false,
              which: 27,
              charCode: 0,
              keyCode: 27,
            })
          );

要找到任何键的正确值:

  1. 在下面粘贴到开发工具:
document.addEventListener(
              "keydown",
              (e)=>{console.log(e)}
            );
  1. 按所需的键。

  2. 从日志中复制值。

参考:https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent

【讨论】:

    【解决方案3】:

    你的意思是这样的

    $(document).delegate('input','keypress', function(e){
        code = e.keyCode ? e.keyCode : e.which;
        if(code=== 27){
            alert('esc pressed');
        }
    });
    

    【讨论】:

    • 这是检测 esc 键何时被按下,它不会模拟它。
    【解决方案4】:

    没有 jQuery:

    document.onkeydown = checkKeycode;
    function checkKeycode(e) {
    var keycode;
      if (window.event) {
        keycode = window.event.keyCode;
      }
      else if (e) {
        keycode = e.which;
      }
      // enter
      if (keycode == 13) {
    
      }
    
      // escape
      if (keycode == 27) {
        //place your action here
      }
    }
    

    【讨论】:

    • 那是检测esc键是什么时候按下的,它不模拟它。
    猜你喜欢
    • 2023-03-15
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    • 1970-01-01
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多