Расширение Chrome lastFocusedWindow не меняется при нажатии на всплывающие окна в разных окнах

Я пытаюсь получить все вкладки в текущем окне, когда пользователь нажимает на мое всплывающее окно. я знаю это chrome.windows.getCurrent() не всегда будет работать, потому что это окно, в котором выполняется код.

Так я попробовал chrome.windows.getLastFocused() но потом я понял, что могу сделать то же самое прямо на вкладках

chrome.tabs.query({lastFocusedWindow: true}, (tabs)=>{
    tabs.forEach(function(tab){
        console.log(tab.title)
    })
})

Эта проблема
Когда у меня открыто несколько окон, и я нажимаю на значок расширения, чтобы открыть всплывающее окно, lastFocusedWindow похоже, не меняется.
У меня есть обработчики событий, которые в данный момент запускаются, чтобы регистрировать вкладки в текущем окне, когда загружается всплывающее окно, а также прослушивать щелчки в любом месте внутри всплывающего окна.

Пример: у меня 2 окна

  1. Нажмите на всплывающую иконку в window1 (правильно идентифицированные вкладки в window1)
  2. Щелкните значок всплывающего окна в окне 2 (правильно идентифицированные вкладки в окне 2).
  3. Щелкните внутри всплывающего содержимого в window1 (все еще думает, что я в window2 и показывает вкладки для окна 2)

Я полагаю, что когда я нажимаю на всплывающее окно, Chrome не видит в этом изменения фокуса, и я не знаю, что делать.

Мой обходной путь / хак должен использовать window.close() в моем всплывающем окне после того, как они щелкают, происходит событие, так что менее вероятно, что несколько всплывающих окон будут открыты одновременно, но это не завершит решение проблемы, потому что они могут щелкнуть, чтобы открыть всплывающее окно, но затем щелкнуть в другом окне, чтобы открыть другое всплывающее окно, которое оставляет 1-е всплывающее окно открыто.

0 ответов

Другие вопросы по тегам