La capture de la touche Ctrl du clavier événements en Javascript
Exemple de code:
$(window).keydown(function(event) {
if(event.ctrlKey && event.keyCode == 84) {
console.log("Hey! Ctrl+T event captured!");
event.preventDefault();
}
if(event.ctrlKey && event.keyCode == 83) {
console.log("Hey! Ctrl+S event captured!");
event.preventDefault();
}
});
Firefox
(6.0.1 testé)
Dans Firefox, les deux écouteur d'événement œuvres. Si vous appuyez sur CtrlT ou CtrlS keycombinations, vous recevrez le message sur la console, et le navigateur l'habitude d'ouvrir un onglet, ni demander de l'enregistrer.
Il est intéressant que si vous utilisez alert
au lieu de console.log
le event.preventDefault()
fonctionne pas, et ouvre un nouvel onglet ou une demande pour enregistrer. Peut-être que ce bug doit se fixe.
Chrome3
Dans Chrome 3, il fonctionne comme dans Firefox.
Chrome4
(testé)
Dans Chrome4, un certain contrôle des combinaisons de touches ont été réservés pour le navigateur
l'utilisation de la seule et ne peut plus être intercepté par le côté client JavaScript
dans la page web.
Ces restrictions n'existent pas dans Chrome3 et sont incompatibles avec
Firefox3/3.5 et IE7/8 (sur Windows).
Dans Chrome 4, il fonctionne de même pour Firefox, à l'exception de certaines combinaison de clavier:
CtrlN
CtrlMajN
CtrlT
CtrlShiftT
CtrlW
CtrlShiftW
Ces combinaisons ne peuvent pas obtenir capturé par du Javascript, mais intégrer des plugins peuvent saisir ces. Par exemple, si vous vous concentrez dans une vidéo Youtube et appuyez sur CtrlT, le navigateur n'est pas ouvert un nouvel onglet.
IE7/8
Il fonctionne comme dans Firefox ou Chrome3.
IE9
(testé)
IE9 est un mouton noir à nouveau, car il ne marche pas autoriser le javascript pour la capture de toute Ctrl? l'événement de clavier. J'ai testé avec de nombreuses combinaisons de touches (R,T,P,S,N,T) et ni travaillé. Également intégrer les applications ne peuvent pas capturer l'événement. Testé avec les vidéos de Youtube.
Merci à @Chaux pour le grand lien.