2010-07-27 20 views
2

J'utilise GWT et GXT et je veux utiliser des raccourcis clavier comme CTRL-S (ou CTRL-SHIFT-S) pour enregistrer le formulaire actuel. Le problème est, je ne peux pas comprendre comment remplacer les navigateurs intégrés CTRL-S. J'ai essayé d'utiliser un componentEvent et d'appeler stopevent, cancelbubble, etc sans aucune chance. J'ai aussi essayé d'utiliserComment puis-je remplacer les raccourcis clavier du navigateur dans mon application GWT/GXT?

Event.addNativePreviewHandler(new Event.NativePreviewHandler(){ 
} 

et appelant event.getNativeEvent().preventDefault(); pour essayer d'arrêter l'événement, mais cela ne fonctionne pas non plus.

Je suis au point où je peux obtenir mes raccourcis clavier pour travailler, mais ils tirent également l'événement du navigateur trop (comme ouvre un navigateur dialogue d'enregistrement)

Quelqu'un a une idée/conseil sur la façon d'obtenir ça fonctionne? J'ai effectivement un certain nombre de raccourcis que je veux utiliser, mais beaucoup de conflits avec le navigateur - juste essayer de comprendre comment contourner les actions du navigateur.

+0

Pour répondre à ma propre question - nous avons choisi d'aller avec les raccourcis CTRL + ALT qui ne sont pas en conflit avec les raccourcis clavier du navigateur intégré. –

Répondre

2

Il est préférable de trouver des combinaisons de touches plutôt que d'essayer de remplacer les raccourcis clavier, ce qui n'est pas une approche standard.

0

Pour répondre à ma propre question - nous avons opté pour aller avec les raccourcis CTRL + ALT qui ne sont pas en conflit avec les raccourcis clavier du navigateur intégré.

1

Appelez la méthode preventDefault() sur KeyDownEvent. Cela fonctionne lorsque j'ai ajouté un gestionnaire Dom et que j'ai également référencé depuis les forums javascript comment Gmail le fait - j'ai remarqué que CTRL-S fonctionne, mais que CTRL-N ne fonctionne pas dans Chrome. Testera d'autres navigateurs plus tard.

Espérons que cela aide,

Ian.

+0

Je peux confirmer que cela fonctionne dans Chrome et Firefox. Nous utilisions KeyUpEvent mais d'ici là l'enregistrement du navigateur a déjà été déclenché, le passage à KeyDownEvent a fonctionné. –