document.hasFocus () для хрома - PullRequest
       6

document.hasFocus () для хрома

2 голосов
/ 01 марта 2010

Кто-нибудь знает, что использовать вместо hasFocus () для Chrome? Я хочу знать, когда моя вкладка Chrome находится в фокусе или нет, поэтому я могу мигать предупреждающее сообщение в заголовке.

Приветствия

Ответы [ 3 ]

4 голосов
/ 01 марта 2010

Вы можете прослушивать события onfocus / onblur и таким образом отслеживать состояние страницы.

<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
    <div id="output">
    </div>
    <script>
      var has_focus = true;

      function print(str) {
        var out = document.getElementById('output')      
        out.innerText = out.innerText + "\n" + str;
      };

      window.onfocus = function() {
        print('focus');
        has_focus = true;
      };

      window.onblur = function() {
        print('blur');
        has_focus = false;
      };
    </script>
  </body>
</html>
3 голосов
/ 15 марта 2013

API видимости страницы должен сделать свое дело: https://developer.mozilla.org/en-US/docs/DOM/Using_the_Page_Visibility_API

document.hidden

Возвращает true, если страница находится в состоянии, которое считается быть скрытым для пользователя и ложным в противном случае.

Конечно, поскольку это новый API, вам нужно использовать разные префиксы браузера:

if (typeof document.hidden !== "undefined") { // Opera 12.10 and Firefox 18 and later support 
    hidden = "hidden";
} else if (typeof document.mozHidden !== "undefined") {
    hidden = "mozHidden";
} else if (typeof document.msHidden !== "undefined") {
    hidden = "msHidden";
} else if (typeof document.webkitHidden !== "undefined") {
    hidden = "webkitHidden";
}
var isHidden = document[hidden];
// or even
var isFocused = !isHidden;
2 голосов
/ 01 марта 2010

Вы бы использовали тег document.activeElement.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...