Posso intercettare i tasti control-A su IE?
-
22-07-2019 - |
Domanda
Sto cercando di usare jQuery per intercettare i tasti di controllo-A sulla mia pagina Web, in questo modo:
$(document).keypress(function (event) {
if (event.ctrlKey && (event.which == 65 || event.which == 97)) {
event.preventDefault();
// ...
}
});
Funziona su Firefox, ma su IE7, il mio gestore eventi non viene chiamato e viene invece selezionato tutto il testo sulla pagina (come accade su Firefox senza il gestore eventi).
Esiste un modo per intercettare i control-A su IE?
Soluzione
Funziona con FF 3.5 e IE7 per me:
$(function() {
var isCtrl = false;
$(document).keyup(function (e) {
if(e.keyCode == 17)
isCtrl = false;
}).keydown(function (e) {
if(e.keyCode == 17)
isCtrl = true;
if(e.keyCode == 65 && isCtrl == true) {
alert('Intercepted CTRL+A');
e.preventDefault();
}
});
});
Altri suggerimenti
Se si restituisce false nel gestore eventi, il comportamento del browser verrà annullato. A seconda del browser, può comportarsi diversamente (ad esempio, la pressione dei tasti si attiverà ancora su Firefox dopo che un keydown lo ha annullato, mentre IE lo interromperà).
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow