Tecla Menú contextual en JavaScript

Para Menú contextual, event.key es ContextMenu, event.code es ContextMenu y la obsoleta keyCode es 93. Pulsa cualquier tecla en el Buscador de códigos de tecla para ver sus valores en tiempo real.

Actualizado el

PropiedadValor
event.keyContextMenu
event.codeContextMenu
event.keyCode / which (obsoleto)93

Cómo detectar Menú contextual

document.addEventListener('keydown', (event) => {
  if (event.key === "ContextMenu") {
    // Context Menu was pressed
  }
});

Usa event.key para reaccionar según el significado de la tecla (depende de la distribución del teclado) y event.code para su posición física, por ejemplo WASD en los juegos. keyCode y which están obsoletas: siguen funcionando, pero sus valores varían entre navegadores y distribuciones.

Cómo tratan los navegadores Menú contextual

La tecla de menú (o Mayús+F10) abre el menú contextual. Escucha el evento contextmenu en lugar de esta tecla para que funcionen por igual el ratón, el teclado y la pulsación prolongada.

En React

<input onKeyDown={(e) => { if (e.key === "ContextMenu") { /* … */ } }} />

Preguntas frecuentes

¿Cuál es el keyCode de Menú contextual?
93. Pero está obsoleto: usa event.key (“ContextMenu”) o event.code (ContextMenu) en código nuevo.
¿Cuál es la diferencia entre event.key y event.code?
event.key es el carácter o la acción que produce la tecla con la distribución actual; event.code es la posición física de la tecla, igual en todas las distribuciones.
¿Debo usar keydown o keypress?
keydown. El evento keypress está obsoleto y no se dispara con teclas que no producen caracteres, como Escape o las flechas.