Определить, активна ли вкладка? (отличается от фокуса) - PullRequest
1 голос
/ 20 октября 2011

Мой javascript использует таймер для обновления CSS страницы.Мне нравится запускать его, когда Safari находится в фоновом режиме, и я делаю изменения в своем редакторе кода, но я не хочу, чтобы он запускался, когда его нет на активной вкладке браузера.

window.blurи window.focus запускаются, когда другая вкладка находится в фокусе, но они также запускаются, когда вкладка активна, а Safari находится в фоновом режиме, поэтому они мне здесь не помогают.

Как определить, активна ли вкладка, в которой работает мой JavaScript?

Ответы [ 3 ]

1 голос
/ 14 декабря 2011

W3C имеет рабочий черновик для отслеживания этой точной ситуации: API видимости страницы . Похоже, что Chrome - единственный браузер, который поддерживает его, в настоящее время с экспериментальным API . Вы можете попробовать это с помощью этой маленькой функции в консоли Web Inspector:

function tattle() {
  console.log(document.webkitVisibilityState);
}

document.addEventListener("webkitvisibilitychange", tattle, false);

Поиграв с этим, я думаю, что это именно то, что мне нужно. В основном document.webkitHidden имеет значение false, только если документ находится на активной вкладке своего окна, независимо от того, активны ли другие окна или приложения.

0 голосов
/ 09 декабря 2011

Здесь есть некоторая документация: https://developer.apple.com/documentation/safariextensions

0 голосов
/ 09 декабря 2011

попробуйте что-нибудь вроде onmouseover ..

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