2013-09-24 5 views
0

У меня есть веб-страница с некоторыми div и контентом (сетка Kendo UI внутри Kendo Splitter), которые получают размер автоматически, чтобы соответствовать доступному пространству, когда страница готова или изменена. Это происходит с помощью обычных обработчиков Javascript + JQuery и работает плавно.Javascript событие, когда страница отображается?

Но когда панель открыта, как Firebug, происходит следующее:

Если я освежить и перейти на вкладку другого браузера до загрузки страницы, то я вернусь к моей странице, я вижу, что один из divs (grid-one) он больше, чем его контейнер, поэтому он переполняется несколькими пикселями. Кстати, это происходит через несколько мгновений после того, как страница была отображена, поэтому нельзя использовать триггер visibilitychange.

То же самое происходит в IE, просто открывая внутристраничный отладчик.

Я не думаю, что виджеты KendoUI связаны с этой проблемой, но я сообщаю об этом ради полноты.

Так что я подумал, что лучший способ исправить это - это воспользоваться некоторыми событиями, которые запускаются, когда документ отображается пользователем. Существительное?

ответ

2

Вы можете слушать focus и blur событий на window как это:

$(window).on('focus', function() { 
    //(...) 
}); 

blur событие вызывается при переходе на другую вкладку или в другое окно, чем окно браузера. focus Событие делает наоборот.
Я мог бы добавить здесь jsfiddle, но он использует iframes, чтобы он не мог быть правильно протестирован.

+0

Я пробовал, но, как я заявляю в вопросе, это не работает, потому что я заметил, что беспорядок изменения размера бывает коротким после того, как я вернусь на страницу. Я думаю, что единственным решением будет установка тайм-аута. – Pizzaboy

Смежные вопросы