This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The entries() method of the KeyboardLayoutMap interface returns a new Iterator object that contains the key/value pairs, in the same order as that provided by a for...in loop (the difference being that a for-in loop enumerates properties in the prototype chain as well).
The method is otherwise the same as Map.prototype.entries().
entries()
None.
A new Iterator object.
The following example iterates every location- or layout-specific string and its associated keyboard code on an English QWERTY keyboard.
navigator.keyboard.getLayoutMap().then((keyboardLayoutMap) => {
for (const [code, key] of keyboardLayoutMap.entries()) {
console.log(`${code} keyboard code represents ${key} key`);
}
});
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
entries |
69 | 79 | No | 56 | No | 69 | No | 48 | No | 10.0 | 69 | No |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/KeyboardLayoutMap/entries