Как обнаружить браузер свести к минимуму и максимизировать состояние в 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);