J'écris une extension chromée qui lance un script avec un raccourci clavier. Cela fonctionne bien sur la plupart des pages, mais je me suis rendu compte que sur gmail, il semble que tous les événements de clavier soient capturés par Gmail et ne sont pas passés à ma fonction.
J'ai un script de contenu (en extension chromée c'est Ajouté à n'importe quelle page que vous voulez) qui a (simplifié bien sûr): p> mais en fait, gmail me laisse tomber. Je sais que le script est chargé em>. J'ai essayé différentes variations de Quelqu'un peut-il savoir un moyen de contourner cela?
J'ai essayé de voir si le script de Greasemonkey pourrait le faire, cela m'a amené ici: http: // code .google.com / p / gmail-greasemonkey / Mais cela ne m'a pas aidé. p> p> window.addeventlistener code> et d'autres types d'événements en vain. P>
3 Réponses :
Vous pouvez essayer un processus de redirection:
document.body.onkeypress code> renvoie NULL cependant. Quelle différence les deux méthodes font-elles? En tout doute, j'ai essayé de faire
document.body.onkeypress = fonction () {alerte ("sdf ');} code> ainsi que
window.onkeypress code> sans meilleurs résultats.
Je ne connais pas le fonctionnement intérieur de la capture d'événements de clavier de Gmail, mais j'ai récemment écrit un simple navigateur de raccourci clavier (donc je n'ai pas à utiliser la souris pour cliquer sur Liens) pour Chrome. P>
Ce n'est pas une extension, mais un script utilisateur / greasemonkey, mais il est déclenché en tapant une virgule (,) deux fois, et cela fonctionne dans Gmail. P>
Peut-être que cela vous aidera à regarder la source. Vous pouvez le télécharger ici: http://userscripts.org/scripts/show/68609 < / p>
Merci, je vais regarder et essayer d'arriver à ce dont j'ai besoin. Je vais mettre à jour si je le fais.
Ok, je l'ai compris. Il s'avère que cela n'était pas vraiment lié à Gmail capturant l'événement et de la garder pour elle-même: il existe un paramétrage des extensions de chrome qui rend le script correspondant à tous les cadres ou juste le haut. Il est par défaut qu'au sommet supérieur et Gmail utilise des iframes. Donc, mon script n'a pas été chargé là où il fallait. ( code.google.com/chrome/extensions/content_scripts.html ) Merci Pour l'exemple de travail, cela m'a aidé à creuser davantage.
Je rencontre exactement le même problème, mais que la mise en place de Allframes à True ne m'a toujours pas permis de capturer des événements de clavier dans Gmail. Spécifiquement lors de la composition d'un courrier électronique et de taper dans le corps. Pouvez-vous vérifier que vous avez ce comportement?
Pour une raison quelconque, mon script ne fonctionne plus du tout sur Gmail. Gmail est l'un des sites d'où je ne me déconnecte jamais, alors je ne sais pas quand cela a commencé ...
D'accord, j'ai une solution de travail, inverse ingénieur du plugin OnePassword. Je ne peux que deviner pourquoi cela fonctionne, je pouvais savoir qu'il est dû à l'ajout de l'événement aux éléments d'entrée. Cependant, changez quoi que ce soit et cela cesse de fonctionner (l'appel de Redir sur le bas est en bas pour une raison pour une raison) comme vous pouvez le voir, j'ai utilisé une redirection. Cet exemple est vraiment brut btw alors ne l'utilisez pas simplement p> p>
Vous pourriez avoir un coup d'œil à ce que j'ai fini par faire: Github. COM / TIMOTHEE / LOGMEOUTTHX / BLOB / MASTER / CHROME% 20EXTENDENSI ON / ... (Remarque: cela fonctionne toujours en cours ;-)) Je n'avais pas besoin de faire de la redirection. La principale chose qui manquait pour moi était dans le manifeste: Github .COM / TIMOTHEE / LOGMEOUTTHX / BLOB / MASTER / CHROME% 20EXTENDENSI ON / ... ET AJOUTER "ALL_FRAMES": true
J'ai oublié de mentionner, j'ai aussi dû ajouter all_frames. Merci pour les liens
Vous pouvez demander à tous vos utilisateurs de désactiver les raccourcis clavier dans leurs paramètres Gmail. Mais ils pourraient ne pas aimer ça. Et je ne suis pas sûr que si cela fonctionnerait de toute façon.
Non ce n'est pas vraiment réalisable. Mon extension ne fait pas beaucoup honnêtement, je ne peux donc imaginer personne qui prend ce compromis. En outre, je suis le seul utilisateur en ce moment, donc je ne voudrais pas que :)