Chrome扩展- Chrome.windows. onfocuschanged行为



我正试图为谷歌chrome浏览器扩展,这需要我能够识别当前选择的选项卡。我用chrome.tabs.onSelectionChanged方法做到了这一点,但是当我切换窗口时,这不会被触发。我计划使用chrome.windows.onFocusChanged来检测窗口何时发生变化,然后使用chrome.tabs.getSelected方法。然而,问题是chrome.windows.onFocusChanged似乎被触发了不止一次。如果我没记错的话,它返回window -1,然后是创建的第一个窗口(通常是1),然后是当前窗口。如果第一个窗口被选中,则触发-1,然后触发1.

我在这里使用正确的方法吗?有更好的方法吗?如果我坚持这样做,我可能需要跟踪窗口的变化,这有点混乱。

有点像我自己的解决方案。对于任何有兴趣做类似事情的人,我所做的是使用onFocusChanged作为一个指示器,表明有一个窗口正在发生变化,然后启动一个requestListener。使用内容脚本,每当有窗口时,我就向扩展发送请求。焦点事件,指示焦点已经在该窗口上。然后,请求侦听器将自己删除。不幸的是,这种方法要求所有选项卡在每次获得焦点时都发送请求。我想有更多的调整来解决这个问题,但同时我认为这已经足够了,因为每次有焦点变化时发送请求似乎并不会消耗那么多资源。

最新更新