javascript - 事件不被键盘触发时出错
问题描述
当按下转义键时,我有一些说明javascript
要做。它工作正常,直到它不是由键盘触发的事件。
这是我的代码:
Fileinput.prototype.clear = function(e) {
if (e) e.preventDefault();
if(e.keyCode == 27) return;
}
当事件不是键盘触发器时出现的错误是:无法读取未定义的属性'keycode'。
试过了if (e==undefined)
,if(e.istriggered)
还是一样的问题。
解决方案
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.
}
因为,这完全取决于浏览器。
推荐阅读
- apache-kafka - 使用 Java AdminClient 更改动态默认代理配置
- variables - 任何解决方案都必须一直滚动到程序顶部以检查声明的变量?
- ios - ITMS-90809:不推荐使用的 API - 不再接受使用 UIWebView 的新应用程序。相反,使用 WKWebView 来提高安全性和可靠性
- postgresql - PostgreSql 流式复制 - 未在从站上创建表
- java - 为什么 Java-regex 匹配下划线?
- list - 枚举已定义但在类中未找到
- c++ - 如何为 Visual Studio 代码设置 boost
- floating-point - 为什么我的方法根据ieee754添加两个浮点数如5.0和3.0不正确?
- nginx - 获取存储在 Heroku 上的证书和密钥文件名以在 Nginx 服务器上设置 SSL
- python-3.x - 在 Pandas 中将一系列列表扩展为 DataFrame