Gmailの受信トレイを定期的に更新するAjaxイベントをキャプチャする方法
-
03-07-2019 - |
質問
Gmailで動作するGreasemonkeyスクリプトを作成しようとしています。 InboxリンクまたはRefreshリンクをクリックしたユーザーに反応するjavascriptを作成する方法を知っています。私の問題は、Gmailが定期的に新しい会話で受信トレイを更新し、このイベントをキャプチャする方法がないことです。 JavaScriptで定期的なAjaxイベントをキャプチャする方法はありますか?
解決 2
上記のMilesの優れた提案を試しましたが、Greasemonkeyスクリプトで変更する前にGmailが元のsetTimeout関数を既に呼び出しているため、残念ながら機能しません。
できることは、Gmailが受信ボックスを定期的に更新するときに行った変更に何らかの形で対応することだけです。ノードが追加または削除されたときに起動するDOM関連のイベントがいくつかあることがわかりました。
http://www.w3 .org / TR / DOM-Level-3-Events / events.html#event-DOMNodeInserted
Gmailは最新のメールでDOMを更新しているため、これらのDOMイベントをリッスンし(DOMNodeInsertedを使用しています)、変更に対応できます。
エレガントではありませんが、機能します。
他のヒント
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);
}
所属していません StackOverflow