Как определить, открыта ли всплывающая страница или нет? - PullRequest
6 голосов
/ 19 января 2012

Я работаю над расширением Chrome и ищу, как выяснить (из фоновой страницы), открыта ли всплывающая страница или нет.Я изучил передачу сообщений , но я не уверен, поможет ли это мне в этом или есть более простой способ.

Спасибо!

1 Ответ

12 голосов
/ 19 января 2012

Вы можете использовать следующий вызов API Chrome из фоновой выборки страницы, если открыто всплывающее окно:

var views = chrome.extension.getViews({ type: "popup" });

//views => [] //popup is closed
//views => [DOMWindow] //popup is open

Если оно возвращает пустой массив, тогда ваше всплывающее окно не открыто, если оно возвращает массивс вашим всплывающим объектом DOMWindow, то ваше всплывающее окно открыто.

Если у вас есть несколько всплывающих окон в одном плагине, вы можете проверить наличие какой-либо глобальной переменной в возвращенном DOMWindow для устранения неоднозначности.

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