Как обнаружить браузер свести к минимуму и максимизировать состояние в javascript
Я пытаюсь найти браузер свести к минимуму и максимизировать состояния, так как я хочу поразить запрос AJAX соответствующим образом в состоянии браузера.
Кто-нибудь знает, как определить состояние браузера с помощью JavaScript.
Ответы
Ответ 1
Я считаю, что единственным надежным способом обнаружения этих состояний является проверка API видимости, предлагаемого HTML5 (это все еще экспериментальная функция), которая предлагает определенные свойства и события
document.hidden // Returns true if the page is in a state considered to be hidden to the user, and false otherwise.
document.visibilityState // Returns a string denoting the visibility state of the document
Вы также можете реагировать на изменения видимости
document.addEventListener("visibilitychange", function() {
console.log(document.hidden, document.visibilityState);
}, false);
Имейте в виду, что это не работает кросс-браузер и доступно только в некоторых версиях браузера.
Ответ 2
Здесь Piotrek De ответьте на другой вопрос:
В GitHub есть чистая библиотека:
https://github.com/serkanyersen/ifvisible.js
Пример:
// If page is visible right now
if( ifvisible.now() ){
// Display pop-up
openPopUp();
}
Я тестировал версию 1.0.1 во всех браузерах, которые у меня есть, и могу подтвердить, что он работает с:
- IE9, IE10
- FF 26.0
- Chrome 34.0
и, возможно, все более новые версии.
Не работает полностью:
- IE8 - всегда указывать, что вкладка/окно в настоящее время активна (.now() всегда возвращает true для меня)
Ответ 3
Вы можете попробовать с API видимости страницы, он имеет свойство boolean document.hidden(document.webkitHidden), которое также определяет, минимизирована или максимизирована текущая страница. Это также зависит от того, сфокусировала ли пользователь текущую вкладку браузера или нет:
https://developers.google.com/chrome/whitepapers/pagevisibility
https://developer.mozilla.org/en/DOM/Using_the_Page_Visibility_API
Ответ 4
Я использую этот код
window.addEventListener('blur', function(){
console.log('blur');
}, false);
window.addEventListener('focus', function(){
console.log('focus');
}, false);