Javascript — события максимизации и переключения вкладок не вызываются в Firefox с использованием фокуса

Я столкнулся со странным поведением, и мне нужна помощь.

Я пытаюсь поймать каждое событие переключения вкладок и каждое событие максимизации (имеется в виду: всякий раз, когда отображается мое окно), используя следующий код:

window.addEventListener("focus", function (e) { this.foo(e); }, false);
window.document.addEventListener("focus", function (e) { this.foo(e); }, false);

Однако он не улавливает событие максимизации! Как узнать, когда пользователь разворачивает мое окно после сворачивания?

Кроме того, мне кажется излишним иметь оба окна. Меня это интересует, поэтому я использую window.focus.... Однако это событие не всегда вызывается для окна, поэтому я должен слушать оба фокуса... Что вы думаете?

Не могли бы вы помочь мне понять, где моя проблема? Мне нужно создать событие, которое срабатывает при каждом переключении/разворачивании вкладок и для каждого документа внутри моего окна, чтобы он обрабатывал мой контент?

Большое спасибо, Нили


person Nili    schedule 21.03.2011    source источник


Ответы (1)


Вы можете использовать событие window.onresize, если window.outerHeight === screen.availHeight && window,outerWidth === screen.availWidth, это максимизировано.

Но externalHeight/Width НЕ ПОДДЕРЖИВАЕТ IE8-, см. http://www.javascriptkit.com/domref/windowproperties.shtml

Обновлено: Для взломов IE8: если вы уверены, что пользователь может принять максимальное увеличение размера окна, вы можете использовать window.resizeTo(screen.availWidth, screen.availHeight) и записать document.documentElement.clientWidth и document.documentElement.clientHeight, чтобы сравнить, развернут ли он на будущее.

person Chris    schedule 21.03.2011