Как применить фильтр в chrome.windows.onFocusChanged

#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.