我正在嘗試編寫一個與Gmail一起使用的Greasemonkey腳本。我知道如何創建JavaScript,以響應點擊收件箱鏈接或刷新鏈接的用戶。我的問題是,Gmail定期刷新收件箱新的對話,我無法捕獲此事件。有沒有什麼辦法來捕捉JavaScript中的週期性Ajax事件?如何捕獲定期刷新Gmail收件箱的Ajax事件
5
A
回答
1
我試過萬里上面很好的建議,但遺憾的是它不工作,因爲Gmail已經叫原setTimeout函數,然後我有機會在我的Greasemonkey腳本中更改它。
我唯一能做的就是以某種方式對Gmail定期刷新收件箱時所做的更改作出反應。我發現有一些火的時候,一個節點被添加或刪除一些DOM相關事件:
http://www.w3.org/TR/DOM-Level-3-Events/events.html#event-DOMNodeInserted
由於Gmail的更新與我的最新的電子郵件的DOM,我可以聽這些DOM事件(我使用DOMNodeInserted)並對變化做出反應。
這不是優雅,但它的作品。
1
,你可以嘗試用自己的函數替換window.setTimeout
功能(也可能是window.setInterval
):
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)
- 2. 從c#獲取gmail收件箱與GData
- 3. 閱讀Gmail收件箱
- 4. Gmail收件箱只讀
- 5. 如何捕獲所有ajax請求收到的事件
- 6. Photoswipe捕獲刷卡事件
- 7. 如何獲得Gmail收件箱按鈕的引用?
- 8. 如何用Meteor percolate獲取我的Gmail收件箱:google-api?
- 9. 如何在不捕捉關閉事件或更改url事件的情況下捕獲僅刷新事件?
- 10. 如何獲取收到的最後一封電子郵件或來自Gmail API的最新收件箱郵件?
- 11. 通過C#接收Gmail收件箱
- 12. 如何捕捉GMail自動刷新
- 13. javamail api訪問Gmail收件箱郵件
- 14. 使用新的Gmail API同步Gmail收件箱郵件的有效方法?
- 15. 用於從Gmail收件箱獲取電子郵件的代碼
- 16. 捕獲事件,同時從子文件夾移動郵件收件箱
- 17. 收到的垃圾郵件gmail郵箱
- 18. Gmail的優先收件箱通過IMAP?
- 19. 使用您的GMail收件箱空間?
- 20. 如何使用API從Gmail收件箱獲取完整郵件和附件?
- 21. 如何捕獲Microsoft Outlook的收件箱項目
- 22. YUI燈箱關閉捕獲事件
- 23. LWUIT集裝箱捕獲事件
- 24. 使用Gmail新API發送包含附件的郵件,但不會顯示在收件箱的收件箱中
- 25. 如何使用SoapUI閱讀收件箱Gmail郵件
- 26. 從LumiSoft的Gmail收件箱收取郵件 - C#
- 27. 通過Android訪問Gmail收件箱
- 28. IMAP訪問Gmail收件箱與XOAUTH
- 29. 每個Ajax事件刷新的FeedbackPanel
- 30. 通過CDO在vba excel中獲取Gmail郵箱收件箱郵件
這是一個好主意。不幸的是,到目前爲止它不適合我。我試過替換window.setTimeout和window.setInterval,我沒有收到任何警報。我想知道Gmail在Greasemonkey腳本中替換它們之前是否已經調用了這些函數。 – 2009-03-05 15:12:15