A mis usuarios les gustaría poder presionar Ctrl+ Spara guardar un formulario. ¿Existe una buena manera de capturar la combinación de teclas Ctrl+ entre navegadores Sy enviar mi formulario?
La aplicación está construida en Drupal, por lo que jQuery está disponible.
javascript
jquery
ceejayoz
fuente
fuente
keydown
lugar dekeypress
en cromoEsto funciona para mí (usando jquery) para sobrecargar Ctrl+ S, Ctrl+ Fy Ctrl+ G:
fuente
window.addEventListener(
lugar de$(window).bind(
else if
no funcionará porque laif
declaración original ya se evaluará como verdadera. Tendrá que poner su código antes de laif
declaración original , convirtiendo el original en unelse if
.Podría usar una biblioteca de accesos directos para manejar las cosas específicas del navegador.
fuente
Esta solución jQuery funciona para mí en Chrome y Firefox, tanto para Ctrl+ Scomo Cmd+ S.
fuente
e.key
lugar dee.which
;Este funcionó para mí en Chrome ... por alguna razón me
event.which
devuelve una S mayúscula (83), no estoy seguro de por qué (independientemente del estado de bloqueo de mayúsculas), así que solíafromCharCode
ytoLowerCase
solo para estar seguroSi alguien sabe por qué tengo 83 y no 115 , me alegrará saberlo, también si alguien prueba esto en otros navegadores, me alegrará saber si funciona o no.
fuente
Combiné algunas opciones para admitir FireFox, IE y Chrome. También lo actualicé para admitir mejor mac
fuente
Sinceramente, me gustaría que las aplicaciones web no anulen mis teclas de acceso directo predeterminadas. Ctrl+ Sya hace algo en los navegadores. Tener ese cambio abruptamente dependiendo del sitio que estoy viendo es disruptivo y frustrante, sin mencionar que a menudo tiene errores. He tenido sitios secuestrados Ctrl+ Tabporque se veía igual que Ctrl+ I, arruinando mi trabajo en el sitio y evitando que cambie de pestañas como de costumbre.
Si desea teclas de acceso directo, use el
accesskey
atributo No rompa la funcionalidad existente del navegador.fuente
@Eevee: a medida que el navegador se convierte en el hogar para una funcionalidad cada vez más rica y comienza a reemplazar las aplicaciones de escritorio, simplemente no será una opción para renunciar al uso de atajos de teclado. El rico e intuitivo conjunto de comandos de teclado de Gmail fue instrumental en mi disposición a abandonar Outlook. Los atajos de teclado en Todoist, Google Reader y Google Calendar hacen que mi vida sea mucho, mucho más fácil a diario.
Los desarrolladores definitivamente deben tener cuidado de no anular las pulsaciones de teclas que ya tienen un significado en el navegador. Por ejemplo, el cuadro de texto WMD en el que estoy escribiendo interpreta inexplicablemente Ctrl+ Delcomo "Blockquote" en lugar de "eliminar palabra hacia adelante". Tengo curiosidad por saber si hay una lista estándar en algún lugar de accesos directos "seguros para el navegador" que los desarrolladores del sitio puedan usar y que los navegadores se comprometan a mantenerse alejados en futuras versiones.
fuente
Esta es una versión actualizada de la respuesta de @ AlanBellows, reemplazada
which
porkey
. También funciona incluso con la falla de la tecla mayúscula de Chrome (donde si presiona Ctrl+ Senvía S mayúscula en lugar de s). Funciona en todos los navegadores modernos.fuente
Esta fue mi solución, que es mucho más fácil de leer que otras sugerencias aquí, puede incluir fácilmente otras combinaciones de teclas y se ha probado en IE, Chrome y Firefox:
fuente
String.fromCharCode
. Aunque, las Mac no tienen una clave de control. Pruebe la tecla de comando conevt.metaKey
. Vuelvetrue
para Cmd en Mac y Win en Windows.Me gusta este pequeño complemento . Sin embargo, necesita un poco más de amistad entre navegadores.
fuente
Esto debería funcionar (adaptado de https://stackoverflow.com/a/8285722/388902 ).
fuente
ejemplo:
uso
Enlace para descargar: http://www.openjs.com/scripts/events/keyboard_shortcuts/#
fuente
Para la respuesta de Alan Bellows:! (E.altKey) agregado para usuarios que usan AltGral escribir (por ejemplo, Polonia). Sin esta presión, AltGr+ Sdará el mismo resultado que Ctrl+S
fuente
Este complemento hecho por mí puede ser útil.
Enchufar
Puede usar este complemento, debe proporcionar los códigos clave y la función para ejecutarse de esta manera
En el código he mostrado cómo realizar para Ctrl+ S. Obtendrá documentación detallada en el enlace. El complemento está en la sección de código JavaScript de mi lápiz en Codepen.
fuente
Resolví mi problema en IE , usando un
alert("With a message")
para evitar el comportamiento predeterminado:fuente