У меня есть таймер JavaScript, который делает запросы XMLHTTP на постоянной основе (один раз каждые 10 секунд). Я хотел бы иметь возможность приостановить таймер, когда окно или вкладка теряет фокус.
Я полностью осведомлен о событиях onFocus
и onBlur
объекта window
, но они не работают надежно во всех браузерах. Например, в Safari вкладки не вызывают события .
Простой код ниже показывает нужную мне функциональность:
<html>
<head>
<title>Testing</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.2/prototype.js"></script>
</head>
<body>
<div id="console"></div>
<script type="text/javascript">
window.onfocus = function(event) {
$('console').insert('Window gained focus<br />');
}
window.onblur = function(event) {
$('console').insert('Window lost focus<br />');
}
</script>
</body>
</html>
Есть ли у кого-нибудь методика определения, когда окно или вкладка браузера теряет / получает фокус, который работает во всех популярных браузерах?