Forum Moderators: open

Message Too Old, No Replies

How to set event.key for Chrome so I don't have to support IE6

Webkit doesn't support event.key and I'm migrating away from event.keycode.

         

JAB Creations

11:34 pm on Mar 21, 2015 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



While finding out that event.keyCode has been deprecated I was surprised to discover that Chrome doesn't support event.key!

The closest thing I can think of is to maybe work with prototype.constructor though I don't have the time to research, merely do. Could someone help me past the research? Then once I understand it I'll work on the polyfill for Chrome and be more than happy to share it.

window.onkeydown = function(event)
{
if (!event.key)
{
//Where do I go from here?
}
}

Fotiman

12:07 am on Mar 22, 2015 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member Top Contributors Of The Month



I'm assuming you want event.keyCode.

JAB Creations

12:30 am on Mar 22, 2015 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



event.keyCode has been deprecated but Chrome doesn't support event.key so I'm just trying to figure out how to alert(event.key); and have it essentially alert(event.keyCode);. Here is what I've messed with...

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);
}


John

Fotiman

3:28 pm on Mar 22, 2015 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member Top Contributors Of The Month



What about something like this:

(function () {
var keyboardEvent = new KeyboardEvent({});
if (!keyboardEvent.hasOwnProperty("key")) {
Object.defineProperty(KeyboardEvent.prototype, "key", {
get: function () {
return this.keyCode;
}
});
}
window.onkeydown = function (event) {
console.log(event.key);
};
})();

JAB Creations

7:06 pm on Mar 29, 2015 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



I posted the answer on my blog [jabcreations.com].

John