Как определить, активно ли окно браузера? - PullRequest
3 голосов
/ 01 октября 2010

Код, который я сейчас использую, это

var focus;
function focuswindow() { focus = true; }
function hidewindow() { focus = false; }
window.onfocus = focuswindow();
window.onblur = hidewindow();

Идея в том, что его можно использовать вот так

if( focus ) { //do something
}

Однако это не работает. Кроме того, он должен работать только на Chrome (так что нет устаревших компонентов IE), так как для расширения Chrome.

1 Ответ

3 голосов
/ 01 октября 2010

Причина, по которой это не работает, заключается в том, что вы немедленно вызываете функции и присваиваете возвращаемое значение undefined для onfocus и onblur.

Вместо этого onfocus и onblur должны ссылаться на функции по имени.

Попробуйте это:

window.onfocus = focuswindow;
window.onblur = hidewindow;

Обратите внимание, что я удалил операторы вызова (). Теперь onfocus и onblur ссылаются на функции и будут вызывать их при возникновении событий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...