文章内容
2020/5/8 9:04:25,作 者: 黄兵
KeyboardEvent.keyCode deprecated
今天在写键盘输入事件的时候,出现了如如下提示:
Deprecated symbol used,consult docs for batter alternative
截图如下:

出现问题的原因:
根据MDN,我们绝对应该不使用.keyCode属性,具体文章:KeyboardEvent.keyCode
解决方案:
var dispatchForCode = function(event, callback) {
var code;
if (event.key !== undefined) {
code = event.key;
} else if (event.keyIdentifier !== undefined) {
code = event.keyIdentifier;
} else if (event.keyCode !== undefined) {
code = event.keyCode;
}
callback(code);
};同时另外一种方法:
window.addEventListener("keydown", function (event) {
if (event.defaultPrevented) {
return; // Do nothing if the event was already processed
}
switch (event.key) {
case "Down": // IE/Edge specific value
case "ArrowDown":
// Do something for "down arrow" key press.
break;
case "Up": // IE/Edge specific value
case "ArrowUp":
// Do something for "up arrow" key press.
break;
case "Left": // IE/Edge specific value
case "ArrowLeft":
// Do something for "left arrow" key press.
break;
case "Right": // IE/Edge specific value
case "ArrowRight":
// Do something for "right arrow" key press.
break;
case "Enter":
// Do something for "enter" or "return" key press.
break;
case "Esc": // IE/Edge specific value
case "Escape":
// Do something for "esc" key press.
break;
default:
return; // Quit when this doesn't handle the key event.
}
// Cancel the default action to avoid it being handled twice
event.preventDefault();
}, true);参考资料:
1、KeyboardEvent.keyCode deprecated. What does this mean in practice?
2、KeyboardEvent.key
评论列表