简而言之,我该如何制作 alert(event.key)
返回event.keyCode
?
我只需要知道如何做到这一点alert(event.key);
变成alert(event.keyCode);
因为一旦我到了那么远,我就可以很好地重新映射一切。
event.keyCode
方法已被弃用。我从来没有搞乱过 JavaScript prototype
据我了解,它本质上是用来为旧版浏览器创建一个polyfill(比如,Chrome 40 不支持 event.key
因为......?)。我并不是在寻找要编码的整个函数,我只是想提醒 keyCode
因为从那里我可以找出映射代码并用工作代码更新这个问题。
我一直在尝试的内容:
window.onkeydown = function(event)
{
if (!event.key)
{
Object.defineProperty(String.prototype,'key',
{
enumerable: false,
configurable: false,
writable: false,
value: function(event.keyCode)
{
alert('event.keyCode = '+event.keyCode);
}
});
}
alert('event.key = '+event.key);
}
没有框架。
最佳答案
组合dandavis和 my评论,这是一个带有一些错误处理的垫片
(function () {
var ev;
try {
ev = new KeyboardEvent('keydown');
if (!('key' in ev)) {
if (!('keyCode' in ev))
if (console && console.warn)
console.warn('Someting went wrong setting up keyboardEvent.key; no keyboardEvent.keyCode');
Object.defineProperty(
KeyboardEvent.prototype,
'key',
{get: function () {return this.keyCode;}}
);
}
} catch (e) {
if (console && console.warn)
console.warn('Someting went wrong setting up keyboardEvent.key; an error was thrown');
}
}());
关于JavaScript 为 event.key 警报 event.keyCode 制作基本的polyfill,以实现 Chrome 的现代化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29189547/