Como mi GIST expiró (nadie lo estaba usando :() me decidí a actualizar la respuesta con más solución de 2017. Compruebe a continuación.
Puede utilizar mi blog a más de jQuery para detectar accesos directos.
básicamente eventos y de caché conseguir lo se pulsan las teclas en el momento. Si todas las teclas son presionadas se dispara la función.
https://github.com/maciekpaprocki/bindShortcut (expirado!)
Yo Tiene una pequeña explicación sobre cómo usarlo en el archivo Léame. Espero que esto ayude. Comentarios más que apreciados.
Edición 2017:
Es 2017 y que no necesita plugins jQuery para resolver cosas por el estilo.En resumen se necesita algo como esto:
let pressed = {};
document.addEventListener('keydown', (event) => {
pressed[event.key] = true;
});
document.addEventListener('keyup', (event) => {
delete pressed[event.key];
});
//and now write your code
document.addEventListener('keydown', (event) => {
if(pressed[firstKey]&&pressed[secondKey]){
//dosomething
}
});
Los navegadores más antiguos podrían tener algunas peculiaridades, sin embargo a partir de IE9 todo debería funcionar muy bien a excepción de las cantidades marginales de los sistemas operativos que no son compatibles delegación de eventos derecha (super vieja ubuntu etc.) No hay forma de arreglar eso en ellos ya que ese no es el problema del navegador.
Existen algunas peculiaridades en los nuevos Mac conectados a teclas booleanas como, por ejemplo, el bloqueo de mayúsculas.
Leer más: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names_and_Char_values
Bonito script, pude obtener solo 6 claves al mismo tiempo como máximo cuando sus códigos estaban muy separados (2 o más diferencias). PD. ¿Por qué eliminar la clave y no establecerla solo en falso? – jerone
@jerone Supongo que no quería que el objeto se amontone con un historial de todas las claves, y guardará algunas iteraciones en el ciclo 'printKeys'. Pero en la práctica, tienes razón, es una pequeña diferencia. –
También puedo hacer alrededor de 7 teclas, sin embargo, para lo que quiero (teclas de flechas) hay algunas combinaciones que permiten 3 o 2, pero nunca 4 ... interesante – ajax333221