Sto provando a scrivere uno script Greasemonkey che funzioni con Gmail. So come creare javascript che reagisce all'utente facendo clic sul collegamento Posta in arrivo o sul collegamento Aggiorna. Il mio problema è che Gmail aggiorna periodicamente la Posta in arrivo con nuove conversazioni e non ho modo di catturare questo evento. C'è un modo per catturare gli eventi Ajax periodici in javascript?Come acquisire l'evento Ajax che aggiorna periodicamente la posta in arrivo di Gmail
risposta
ho cercato Miles' ottimo suggerimento di cui sopra, ma purtroppo non funziona perché Gmail ha già chiesto l'originale funzione setTimeout prima che io abbia la possibilità di cambiarlo nel mio script Greasemonkey.
L'unica cosa che posso fare è in qualche modo reagire ai cambiamenti che Gmail fa quando aggiorna periodicamente la casella di posta. Ho scoperto che ci sono diversi eventi correlati DOM che il fuoco quando viene aggiunto o rimosso un nodo:
http://www.w3.org/TR/DOM-Level-3-Events/events.html#event-DOMNodeInserted
Poiché Gmail sta aggiornando il DOM con le mie ultime email, posso ascoltare per questi eventi DOM (sono usando DOMNodeInserted) e reagire alle modifiche.
Non è elegante, ma funziona.
Si potrebbe provare a sostituire la funzione window.setTimeout
(e possibilmente window.setInterval
) con le proprie funzioni:
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. API per Posta in arrivo di Gmail
- 2. PHP imap_search che non rileva tutti i messaggi nella posta in arrivo di Gmail
- 3. PostgreSQL interrogazione posta in arrivo
- 4. Come leggo la posta in arrivo usando C#
- 5. Come aprire la posta in arrivo predefinita dal codice Android?
- 6. Aggiorna periodicamente DataTemplate da DataTemplateSelector?
- 7. Ruby che invia posta via gmail smtp
- 8. Ottieni tutti i messaggi di posta in arrivo con API Gmail utilizzando PHP
- 9. Aggiorna <img> in jQuery periodicamente
- 10. python imaplib per ottenere posta in arrivo gmail titoli titoli e nome mittente
- 11. invia posta all'account Gmail
- 12. Eliminare un sms dalla posta in arrivo
- 13. Individuazione della Posta in arrivo Bluetooth
- 14. Come salvare SMS in Posta in arrivo in Android?
- 15. Come si ottiene un'icona in Posta in arrivo Google?
- 16. come inviare la richiesta di posta con ajax in ember.js?
- 17. Pulsante Aggiungi come "Nuova posta" dell'app Gmail
- 18. Google Posta in arrivo come RecyclerVisualizza animazione aperta
- 19. Come inviare a un "contatto di gruppo" o lista di distribuzione utilizzando la Posta in arrivo di Google
- 20. Come ordinare la mailbox in arrivo?
- 21. noname nella mia casella di posta Gmail
- 22. Nessuna posta ricevuta nella posta in arrivo con XAMPP 1.8.0, MercuryMail e posta()
- 23. Come configurare php.ini per usare gmail come server di posta
- 24. Accesso ai promemoria di Posta in arrivo di Google tramite l'API
- 25. Come impedire che SMS entri in Posta in arrivo su Android?
- 26. JSF, aggiornare periodicamente un componente con ajax?
- 27. Posta PHP() invia a GMAIL spam
- 28. invia posta smtp compreso l'html all'account gmail
- 29. La posta in formato HTML non viene visualizzata affatto in Gmail ma è in altri client di posta
- 30. In che modo FaceBook utilizza Cassandra per la ricerca nella posta in arrivo, se Caasandra non ha capacità di ricerca?
Questa è una grande idea. Sfortunatamente, non ha funzionato per me finora. Ho provato a sostituire sia window.setTimeout che window.setInterval e non ricevo alcun avviso. Mi chiedo se Gmail abbia già chiamato queste funzioni prima di sostituirle nello script Greasemonkey. –
Ho anche provato che la sostituzione delle funzioni setTimeout e setInterval li chiama nello script Greasmonkey. Come previsto, vedo gli avvisi. Il mio problema sembra essere che Gmail ha già chiamato setTimeout o setInterval prima dell'esecuzione dello script Greasemonkey. –