español ejemplos descargar definicion curso caracteristicas javascript

javascript - ejemplos - Anulación de atajos de teclado del navegador



javascript html (4)

Me gustaría agregar soporte para atajos de teclado a un par de páginas en mi aplicación web interceptando el manejador de eventos de pulsación de tecla del objeto del documento, no el atributo accesskey.

El problema es que cada navegador tiene sus propias combinaciones de teclado, por lo que es imposible crear un conjunto de combinaciones de teclado que funcionen en todos los navegadores web y sean consistentes (por ejemplo, sería absurdo si el atajo para guardar fuera Ctrl + Shift). + S, mientras que uno para eliminar fue Alt + D. )

Así que pensé que sería simplemente más simple anular los accesos directos del navegador en un par de páginas con las mías.

Todo inconveniente a un lado, ¿es posible? Si es así, como lo haces?


Aquí está mi Solución:

document.onkeydown = function () { if ((window.event.keyCode == 121) && (window.event.ctrlKey))) { window.event.returnValue = false; window.event.cancelBubble = true; window.event.keyCode = 0; return false; } }


Aquí está mi solución a este problema:

La mayoría (si no todos) de los accesos directos del navegador serán anulados. Solo los del sistema, como Alt + Tab o la tecla de Windows no lo harán.

document.onkeydown = overrideKeyboardEvent; document.onkeyup = overrideKeyboardEvent; var keyIsDown = {}; function overrideKeyboardEvent(e){ switch(e.type){ case "keydown": if(!keyIsDown[e.keyCode]){ keyIsDown[e.keyCode] = true; // do key down stuff here } break; case "keyup": delete(keyIsDown[e.keyCode]); // do key up stuff here break; } disabledEventPropagation(e); e.preventDefault(); return false; } function disabledEventPropagation(e){ if(e){ if(e.stopPropagation){ e.stopPropagation(); } else if(window.event){ window.event.cancelBubble = true; } } }


Hay una excelente cobertura de esto aquí: http://unixpapa.com/js/key.html

En cuanto a si esto es algo que debería hacerse, el editor de preguntas de anula bastantes teclas sin interrumpir demasiado (pase el mouse sobre los botones de la barra de herramientas).


onkeydown = function(e){ if(e.ctrlKey && e.keyCode == ''S''.charCodeAt(0)){ e.preventDefault(); //your saving code } }