#google-chrome #google-chrome-extension
#google-chrome #google-chrome-расширение
Вопрос:
Я пытаюсь применить фильтр, указанный в документе Google для chrome.windows.onFocusChanged. Как я могу это сделать?
Комментарии:
1. chrome.windows.onFocusChanged.addListener(yourListener, {windowTypes: [‘обычный’, ‘всплывающий’]})
Ответ №1:
Общая документация находится по адресуhttps://developer.chrome.com/extensions/events#filtered
// In general, it looks like this:
chrome.apiName.onEventName.addListener(handler, filter);
Примечание:
События поддерживают определенные фильтры, которые имеют значение для этого события. Список фильтров, поддерживаемых событием, будет указан в документации к этому событию в разделе «фильтры».
Итак, из документов для windows.onFocusChanged
:
Фильтры
массив WindowType
windowTypes
Условия, которым должен удовлетворять тип удаляемого окна. По умолчанию он удовлетворяет
['normal', 'popup']
.
В вашем случае, как предложил wOxxOm:
chrome.windows.onFocusChanged.addListener(yourListener, {windowTypes: ['normal', 'popup']});
Единственным другим не устаревшим вариантом типаокна является 'devtools'
.
К сожалению, вы не можете добавить фильтр при любых других условиях. Вам нужно будет проверить в обработчике, хотите ли вы фильтровать по чему-то вроде идентификатора окна, условия состояния окна, вкладок и т.д.
Комментарии:
1. сделано то же самое, но не работает. он по-прежнему запускается для некоторого идентификатора окна ‘-1’.
2. Или это окно инструментов разработчика??
3. но я не открываю окно инструментов разработчика за пределами главного окна.
4. @SahilBansal «Возвращает,
chrome.windows.WINDOW_ID_NONE
если все окна Chrome потеряли фокус». Я готов поспорить, что эта константа равна -1.