首页 > 解决方案 > 事件不被键盘触发时出错

问题描述

当按下转义键时,我有一些说明javascript要做。它工作正常,直到它不是由键盘触发的事件。

这是我的代码:

Fileinput.prototype.clear = function(e) {
    if (e) e.preventDefault();
    if(e.keyCode == 27) return;
}

当事件不是键盘触发器时出现的错误是:无法读取未定义的属性'keycode'。

试过了if (e==undefined)if(e.istriggered)还是一样的问题。

标签: javascript

解决方案


keyCode 如果可能,您应该避免使用它;它已经被弃用了一段时间。参考:MDN

您可以遵循此代码段。

  if (e.key !== undefined) {
    // Handle the event with KeyboardEvent.key and set handled true.
  } else if (e.keyIdentifier !== undefined) {
    // Handle the event with KeyboardEvent.keyIdentifier and set handled true.
  } else if (e.keyCode !== undefined) {
    // Handle the event with KeyboardEvent.keyCode and set handled true.
  }

因为,这完全取决于浏览器。


推荐阅读