key element defines a window-global keyboard shortcut and must be placed inside a
When a key matching the attributes on the
key element is pressed, the command will be fired on the
key element. The key pressed must match the key attribute (or keycode attribute) as well as the modifiers attribute in order for the
key element to be activated.
For the shortcut defined using the
key element to work, you must specify a command attribute (or an oncommand handler) on the
To display the shortcut defined with the
key element in the UI, you can use <
key="key element's id" command="command id" .../>.
In order to use (non-default) key commands within specific elements, you will need to listen for key events.
More information is available in the XUL tutorial.
commandevent will not fire. In the case of form elements, it will not be submitted. Do not set the attribute to
true, as this will suggest you can set it to
falseto enable the element again, which is not the case.
disabledattribute is allowed only for form controls. Using it with an anchor tag (an
<a>link) will have no effect.
disabledproperty which, except for menus and menuitems, is normally preferred to use of the attribute, as it may need to update additional state.
shift: The Shift key.
alt: The Alt key. On the Macintosh, this is the Option key. On Macintosh this can only be used in conjunction with another modifier, since Alt+Letter combinations are reserved for entering special characters in text.
meta: The Meta key. On the Macintosh, this is the Command key.
control: The Control key.
os: Windows logo key on Windows, Super or Hyper key on Linux. This shouldn't be specified directly because it may conflict with system wide shortcut key.
accel: The key used for keyboard shortcuts on the user's platform, which is Control on Windows and Linux, and Command on Mac. Usually, this would be the value you would use.
access: The access key for activating menus and other elements. On Windows, this is the Alt key, used in conjuction with an element's accesskey.
any: Indicates that all modifiers preceding it are optional.
capturingto indicate during the event capturing phase or
targetto indicate at the target element or left out entirely for the bubbling phase.
For example, consider the following key:
<key key="r" modifiers="shift"/>
This key will only match when the Shift key is pressed as well as the R key, and no other keys. For instance, if the Shift, Control and R keys are all pressed, the key will not match.
To indiciate that a modifier key may optionally be pressed, place the word 'any' after listing the optional modifier key. For example:
<key key="r" modifiers="shift any control"/>
In this example, the shift key may or may not be pressed, while the control key must be pressed. This allows keys to match more loosely for modifier keys that aren't relevant, yet still allows specific modifiers to be required.
If the modifiers attribute is not specified, then no modifiers may be pressed for the key to match.
If neither the key or keycode attribute are used, the key element will handle all key events. However, if one of the attributes is set to an empty string, the element doesn't handle any key events. For example:
<!-- This element handles all key events --> <key/> <!-- These elements don't handle any key events --> <key key="" modifiers="control"/> <key keycode="" modifiers="control"/>
In case you want to change one of the
<key>'s attributes, such as the modifiers attribute, the
keyset element has to be re-added to its parent node; otherwise the new attributes won't be applied. For example:
// modify some attributes let key = document.getElementById(KEY_ID); key.setAttribute("modifiers", "alt shift"); // apply the changes let keyset = document.getElementById(KEYSET_ID); keyset.parentNode.appendChild(keyset);