Расширение Chrome - Chrome.windows.onFocusChanged Behavior - PullRequest
2 голосов
/ 11 ноября 2011

Я пытаюсь создать расширение для Google Chrome, которое требует от меня возможности идентифицировать выбранную в данный момент вкладку.Я сделал это с помощью метода chrome.tabs.onSelectionChanged, однако при переключении окон это не срабатывает.Я планирую использовать chrome.windows.onFocusChanged, чтобы определить, когда изменяется окно, а затем использовать метод chrome.tabs.getSelected.Однако проблема в том, что chrome.windows.onFocusChanged, похоже, запускается более одного раза.Если я не ошибаюсь, он возвращает окно -1, затем первое созданное окно (обычно 1), затем текущее окно.Если выбрано первое окно, то оно срабатывает -1, а затем 1.

Использую ли я правильный метод здесь?Есть ли лучший способ сделать это?Если я останусь с этим, мне, возможно, придется следить за тем, как меняется окно, что немного грязно.

1 Ответ

1 голос
/ 27 августа 2017

Кинда работала над моим собственным решением для этого. Для тех, кто заинтересован в том, чтобы сделать что-то подобное, вместо этого я использовал onFocusChanged в качестве индикатора того, что происходит изменение окна, которое затем запускает requestListener. Используя контентные скрипты, я отправлял запрос на расширение всякий раз, когда происходило событие window.focus, указывающее, что фокус уже находится на этом окне. Запросник затем просто удаляет себя. К сожалению, этот подход требует от всех вкладок отправлять запросы каждый раз, когда они получают фокус. Я полагаю, что нужно еще кое-что исправить, но пока мне кажется, что этого достаточно, поскольку отправка запросов каждый раз, когда происходит смена фокуса, кажется, не поглощает столько ресурсов.

...