This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The KeyboardLayoutMap
interface of the the Keyboard API is a map-like object with functions for retrieving the string associated with specific physical keys. A list of valid keys is found in the UI Events KeyboardEvent code Values specification.
Properties
KeyboardLayoutMap.entries
Read only- Returns an array of a given object's own enumerable property
[key, value]
pairs, in the same order as that provided by afor...in
loop (the difference being that afor-in
loop enumerates properties in the prototype chain as well). KeyboardLayoutMap.keys
Read only- Returns a new Array Iterator object that contains the keys for each index in the array.
KeyboardLayoutMap.size
Read only- Returns the number of elements in the
KeyboardLayoutMap
object. KeyboardLayoutMap.values
Read only- Returns a new Array Iterator object that contains the values for each index in the
KeyboardLayoutMap
object.
Methods
KeyboardLayoutMap.forEach()
Read only- Executes a provided function once for each element of
KeyboardLayoutMap
. KeyboardLayoutMap.get()
- Returns the element with the given key from the
KeyboardLayoutMap
object. KeyboardLayoutMap.has()
- Returns a boolean indicating whether the
KeyboardLayoutMap
object has an element with the specified key.
Examples
The following example demonstrates how to get the location- or layout-specific string associated with the key that corresponds to the 'W' key on an English QWERTY keyboard.
var keyboard = navigator.keyboard; keyboard.getLayoutMap() .then(keyboardLayoutMap => { var upKey = keyboardLayoutMap.get('KeyW'); window.alert('Press ' + upKey + ' to move up.'); })
Specifications
Specification | Status | Comment |
---|---|---|
Keyboard Map The definition of 'KeyboardLayoutMap' in that specification. |
Editor's Draft | Initial definition. |
Browser compatibility
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
KeyboardLayoutMap | Chrome Full support 69 | Edge Full support 79 | Firefox No support No | IE No support No | Opera Full support 55 | Safari No support No | WebView Android No support No | Chrome Android No support No | Firefox Android No support No | Opera Android Full support 48 | Safari iOS No support No | Samsung Internet Android No support No |
entries | Chrome Full support 69 | Edge Full support 79 | Firefox No support No | IE No support No | Opera Full support 56 | Safari No support No | WebView Android No support No | Chrome Android No support No | Firefox Android No support No | Opera Android Full support 48 | Safari iOS No support No | Samsung Internet Android No support No |
forEach | Chrome Full support 69 | Edge Full support 79 | Firefox No support No | IE No support No | Opera Full support 56 | Safari No support No | WebView Android No support No | Chrome Android No support No | Firefox Android No support No | Opera Android Full support 48 | Safari iOS No support No | Samsung Internet Android No support No |
get | Chrome Full support 69 | Edge Full support 79 | Firefox No support No | IE No support No | Opera Full support 56 | Safari No support No | WebView Android No support No | Chrome Android No support No | Firefox Android No support No | Opera Android Full support 48 | Safari iOS No support No | Samsung Internet Android No support No |
has | Chrome Full support 69 | Edge Full support 79 | Firefox No support No | IE No support No | Opera Full support 56 | Safari No support No | WebView Android No support No | Chrome Android No support No | Firefox Android No support No | Opera Android Full support 48 | Safari iOS No support No | Samsung Internet Android No support No |
keys | Chrome Full support 69 | Edge Full support 79 | Firefox No support No | IE No support No | Opera Full support 56 | Safari No support No | WebView Android No support No | Chrome Android No support No | Firefox Android No support No | Opera Android Full support 48 | Safari iOS No support No | Samsung Internet Android No support No |
size | Chrome Full support 69 | Edge Full support 79 | Firefox No support No | IE No support No | Opera Full support 56 | Safari No support No | WebView Android No support No | Chrome Android No support No | Firefox Android No support No | Opera Android No support No | Safari iOS No support No | Samsung Internet Android No support No |
values | Chrome Full support 69 | Edge Full support 79 | Firefox No support No | IE No support No | Opera Full support 56 | Safari No support No | WebView Android No support No | Chrome Android No support No | Firefox Android No support No | Opera Android Full support 48 | Safari iOS No support No | Samsung Internet Android No support No |
Legend
- Full support
- Full support
- No support
- No support
- Experimental. Expect behavior to change in the future.
- Experimental. Expect behavior to change in the future.