Firefox Tomorrow

web api instance method

Keyboard: lock() method

View on MDN ↗

Limited availabilitySecure context

The lock() method of the Keyboard interface returns a Promise that resolves after enabling the capture of key presses for any or all of the keys on the physical keyboard. This method can only capture keys that are granted access by the underlying operating system.

If lock() is called multiple times then only the key codes specified in the most recent call will be locked. Any keys locked by a previous call to lock() are unlocked.

Syntax

lock()
lock(keyCodes)

Parameters

  • keyCodes Optional

Return value

A Promise that resolves with undefined when the lock was successful.

Exceptions

  • AbortError DOMException
    • : Thrown if a new call to lock() is made before the current one has finished.
  • InvalidAccessError DOMException
  • InvalidStateError DOMException
    • : Thrown if lock() is not called in an active top-level browsing context.

Security

Transient user activation is required. The user has to interact with the page or a UI element in order for this feature to work.

Examples

Capturing all keys

The following example captures all key presses.

navigator.keyboard.lock();

Capturing specific keys

The following example captures the W, A, S, and D keys. It captures these keys regardless of which modifiers are used with the key press. Assuming a standard US QWERTY layout, registering "KeyW" ensures that W, Shift+W, Control+W, Control+Shift+W, and all other key modifier combinations with W are sent to the app. The same applies to for "KeyA", "KeyS" and "KeyD".

navigator.keyboard.lock(["KeyW", "KeyA", "KeyS", "KeyD"]);

Specifications

SpecificationsStandards references are available on the canonical MDN page.

Browser compatibility

Browser compatibilityCompatibility data is available on the canonical MDN page.