Как определить, сфокусировано ли окно браузера или нет?

Моя страница должна делать звуки уведомлений только тогда, когда окно находится в фоновом режиме. Я могу отслеживать события window.onfocus и window.onblur, чтобы заметить, когда изменяется состояние фокусировки. Однако я не знаю, будет ли окно загружаться сфокусированным или нет, поскольку оно может загружаться, например, на вкладку фона.

Как мне решить, играть ли звуки или нет, прежде чем я получу событие onfocus/onblur?

Ответ 1

Не могли бы вы просто предположить, что он загружен размытым, а затем измените статус на сфокусированный, как только вы получите какой-либо тип события (keydown/mousemove)?

Ответ 2

Событие onfocus должно запускаться, когда страница изначально открывается (на переднем плане). По крайней мере, это в FF3/IE8.

Таким образом, вы можете иметь звуки на начальном этапе, отключить их при включении фокуса и включить их обратно при срабатывании onblur.