Вопрос по javascript – Как обнаружить браузер сворачивать и максимизировать состояние в JavaScript [дубликата]

13

This question already has an answer here:

Is there a way to detect if a browser window is not currently active? 18 answers

Я пытаюсь найти браузер минимизировать и максимизировать состояния, так как я хочу, чтобы запрос AJAX соответствовал состоянию браузера.

Кто-нибудь знает, как я могу определить состояние браузера с помощью JavaScript.

А что если он где-то посередине? Я редко запускаю развернутые окна. RobG

Ваш Ответ

4   ответа
2

window.addEventListener('blur', function(){
   console.log('blur');
}, false);

window.addEventListener('focus', function(){
   console.log('focus');
}, false);
Error: User Rate Limit Exceeded
4

Здесь & APOS; sПиотрек Де& APOS; sответить на другой вопрос:

There is a neat library available on GitHub:

https://github.com/serkanyersen/ifvisible.js

Example:

// If page is visible right now
if( ifvisible.now() ){
  // Display pop-up
  openPopUp();
}

I've tested version 1.0.1 on all browsers I have and can confirm that it works with:

  • IE9, IE10
  • FF 26.0
  • Chrome 34.0

and probably all newer versions.

Doesn't fully work with:

  • IE8 - always indicate that tab/window is currently active (.now() always returns true for me)
19

Я думаю, что единственный надежный способ обнаружить эти состояния - это проверить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);

Имейте в виду, что это не работает кросс-браузер и доступен только в определенных версиях браузера.

Error: User Rate Limit Exceeded
1

Вы можете попробовать использовать Page Visibility API, он имеет логическое свойство document.hidden (document.webkitHidden), которое также определяет, свернута ли текущая страница или развернута. Это также зависит от того, сфокусировал ли пользователь текущую вкладку браузера или нет:

https://developers.google.com/chrome/whitepapers/pagevisibility

https://developer.mozilla.org/en/DOM/Using_the_Page_Visibility_API

Error: User Rate Limit Exceeded

Похожие вопросы