J'essaye d'écrire un script Greasemonkey qui fonctionne avec Gmail. Je sais comment créer un javascript qui réagit à l'utilisateur en cliquant sur le lien Boîte de réception ou sur le lien Actualiser. Mon problème est que Gmail actualise périodiquement la boîte de réception avec de nouvelles conversations et je n'ai aucun moyen de capturer cet événement. Est-il possible de capturer des événements Ajax périodiques en JavaScript?Comment capturer l'événement Ajax qui réactualise périodiquement la boîte de réception Gmail
Répondre
J'ai essayé une excellente suggestion de Miles ci-dessus, mais malheureusement, il ne fonctionne pas parce que Gmail a déjà appelé l'original Fonction setTimeout avant de pouvoir la modifier dans mon script Greasemonkey. La seule chose que je peux faire est de réagir d'une façon ou d'une autre aux changements que Gmail fait quand il actualise périodiquement la boîte de réception. Je trouve qu'il ya plusieurs événements liés DOM que le feu lorsqu'un noeud est ajouté ou supprimé:
http://www.w3.org/TR/DOM-Level-3-Events/events.html#event-DOMNodeInserted
Depuis Gmail est mise à jour le DOM avec mes derniers courriels, je peux écouter ces événements DOM (je suis en utilisant DOMNodeInserted) et réagissez aux changements.
Ce n'est pas élégant, mais ça marche.
Vous pouvez essayer de remplacer la fonction window.setTimeout
(et peut-être window.setInterval
) avec vos propres fonctions:
window._setTimeout = window.setTimeout;
window.setTimeout = function(func, delay) {
return window._setTimeout(function() {
// Your code goes here, before the client function is called
alert('A timeout event just fired!');
if (typeof func == 'string') {
eval(func);
} else {
func();
}
}, delay);
}
- 1. gmail api: répondre aux e-mails déjà dans la boîte de réception avec vb.net
- 2. accéder à ma boîte de réception gmail via le code php
- 3. Est-il possible d'obtenir tous les emails d'une boîte de réception dans GMail?
- 4. Sélectionnez les mails de la boîte de réception seul via poplib
- 5. Jquery ajax, quand périodiquement appelé, ne fonctionne pas sur IE8
- 6. comment obtenir des messages dans la boîte de réception de facebook en utilisant la requête fql?
- 7. Comment étendre la boîte à outils de contrôle Ajax
- 8. En utilisant MAPI avec C++, comment puis-je ouvrir la boîte de réception d'un autre utilisateur?
- 9. Outlook 2007 Code VBA pour passer à (ouvrir) Boîte de réception IMAP
- 10. Récupérer le message de la boîte de réception du serveur Exchange en utilisant .net
- 11. Comment implémenter la connexion gmail?
- 12. Comment capturer la sortie d'execvp
- 13. Comment obtenir des e-mails d'utilisateurs dans ma boîte de réception gmail gratuite via le formulaire de contact sur mon site
- 14. Vérifier le nombre de messages Gmail non lus avec Python
- 15. Création de messages (c'est-à-dire de brouillons) dans Gmail avec IMAP/SMTP?
- 16. ce qui est la boîte de message dans asp.net
- 17. Comment capturer la touche Impr écran?
- 18. Comment capturer soumettre la réponse du formulaire "domaine différent"?
- 19. Service WCF pour la réception de l'image
- 20. Boîte de dialogue simple d'ajout de formulaire (telerik asp.net ajax)
- 21. Afficher l'icône Outlook dans la zone de notification pour les messages, pas dans la boîte de réception
- 22. Comment puis-je capturer la frappe qui déclenche "CellEndEdit" sur un DataGridView en C#?
- 23. Architecture de sécurité Gmail
- 24. La connexion à Google OpenID/fédérée échoue périodiquement
- 25. Comment capturer l'image de la webcam du client dans asp.net
- 26. Comment capturer l'événement d'impression dans PrintPreviewDialog
- 27. Appel de la méthode MVC à partir de la boîte de dialogue JQuery UI sans AJAX
- 28. Comment filtrer les fichiers qui peuvent être vus sur la boîte de dialogue de téléchargement?
- 29. Comment renvoyer le nombre de messages non lus d'un utilisateur à partir d'une boîte de réception Exchange?
- 30. Comment capturer un numéro de téléphone
C'est une bonne idée. Malheureusement, ça ne marche pas pour moi jusqu'à présent. J'ai essayé de remplacer à la fois window.setTimeout et window.setInterval et je ne reçois aucune alerte. Je me demande si Gmail a déjà appelé ces fonctions avant de les remplacer dans le script Greasemonkey. –
J'ai même testé que le remplacement des fonctions setTimeout et setInterval fonctionne en les appelant dans le script Greasmonkey. Comme prévu, je vois des alertes. Mon problème semble être que Gmail a déjà appelé setTimeout ou setInterval avant l'exécution du script Greasemonkey. –