Gmail받은 편지함을 정기적으로 새로 고치는 Ajax 이벤트 캡처 방법
-
03-07-2019 - |
문제
Gmail과 함께 작동하는 Greasemonkey 스크립트를 작성하려고합니다. 받은 편지함 링크 또는 새로 고침 링크를 클릭하는 사용자에게 반응하는 JavaScript를 만드는 방법을 알고 있습니다. 내 문제는 Gmail이 새로운 대화로받은 편지함을 정기적으로 새로 고치고이 이벤트를 캡처 할 방법이 없다는 것입니다. JavaScript에서 정기적 인 Ajax 이벤트를 캡처하는 방법이 있습니까?
해결책 2
위의 Miles의 훌륭한 제안을 시도했지만 불행히도 Gmail은 Greasemonkey 스크립트에서 변경할 수있는 기회를 갖기 전에 이미 원래 Settimeout 기능을 호출했기 때문에 작동하지 않습니다.
내가 할 수있는 유일한 일은 주기적으로받은 편지함을 새로 고칠 때 Gmail이 만드는 변화에 어떻게 반응하는 것입니다. 노드가 추가되거나 제거 될 때 발사되는 몇 가지 DOM 관련 이벤트가 있음을 알았습니다.
http://www.w3.org/tr/dom-2-2-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