按下转义键时,我在javascript
中有一些说明。它的工作正常,直到它不是由键盘触发的事件。
这是我的代码:
Fileinput.prototype.clear = function(e) {
if (e) e.preventDefault();
if(e.keyCode == 27) return;
}
当事件不是键盘触发器时出现的错误是:无法读取属性' keycode'未定义的。
尝试if (e==undefined)
,if(e.istriggered)
并遇到同样的问题。
答案 0 :(得分:0)
然后你的解决方案是简单的:
Fileinput.prototype.clear = function(e) {
if (e) {
e.preventDefault();
if(e.keyCode == 27) return;
}
您已经知道错误发生在keyCode上,而不是在preventDefault()上,因为undefined也没有preventDefault函数。
答案 1 :(得分:0)
几乎你的答案是正确的,只需改变如下
Fileinput.prototype.clear = function(e) {
if (e) {
e.preventDefault();
return !e.keyCode === 27
}
}
答案 2 :(得分:0)
<强>键代码强> 如果可能,你应该避免使用它;它已经被弃用了一段时间。 参考: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.
}
因为,这完全取决于浏览器。