/ / Chrome Extension - Chrome.windows.onFocusChanged Behavior - google-chrome, google-chrome-extension, foco, janela

Extensão do Google Chrome - Chrome.windows.onFocusChanged Behavior - google-chrome, google-chrome-extension, foco, janela

Estou tentando fazer uma extensão para o Google chromeo que exige que eu seja capaz de identificar a guia atualmente selecionada. Eu fiz isso com o método chrome.tabs.onSelectionChanged, no entanto, quando troco de janelas, isso não é acionado. Planejo usar chrome.windows.onFocusChanged para detectar quando a janela é alterada e, em seguida, use o método chrome.tabs.getSelected. O problema é que chrome.windows.onFocusChanged parece ser acionado mais de uma vez. Se não me engano, ele retorna a janela -1, a primeira janela criada (geralmente 1) e a janela atual. Se a primeira janela for selecionada, será acionado -1 e, em seguida, 1.

Estou usando o método certo aqui? Existe um jeito melhor de fazer isso? Se eu continuar com isso, talvez seja necessário acompanhar como a janela muda, o que é um pouco confuso.

Respostas:

1 para resposta № 1

Meio que trabalhei na minha própria solução para isso. Para qualquer pessoa interessada em fazer algo semelhante, o que eu fiz foi usar o onFocusChanged como um indicador de que está ocorrendo uma alteração na janela que inicia um requestListener. Usando scripts de conteúdo, enviei uma solicitação para a extensão sempre que havia um evento window.focus indicando que o foco já está nessa janela. O requestlistener apenas se remove. Infelizmente, essa abordagem exige que todas as guias enviem solicitações sempre que obtiverem foco. Acho que há mais alguns ajustes para corrigir, mas, enquanto isso, acho que é suficiente, já que o envio de solicitações sempre que ocorre uma mudança de foco parece não consumir tantos recursos.