如何在Chrome扩展程序中获取所有可见标签页
获取屏幕上所有可见的Chrome标签页
- 标签页要处于可见状态,必须是其所在窗口中的active标签页,但存在特殊情况:某个标签页显示在屏幕上,却不属于
lastFocusedWindow(当前聚焦窗口)。 - 若仅需获取用户当前聚焦的标签页(用户输入内容会显示在该标签页内),可使用以下代码:
const tabList = await chrome.tabs.query({active: true, lastFocusedWindow: true}); - 要获取屏幕上所有可见的标签页(包括其他非聚焦但显示在屏幕上的窗口的活动标签页),可调整查询逻辑:
先获取所有普通窗口中的活动标签页,再筛选出窗口未被最小化的标签页(最小化窗口的标签页不可见):
这里通过// 获取所有普通窗口的活动标签页 const allActiveTabs = await chrome.tabs.query({active: true, windowType: 'normal'}); // 筛选出可见窗口对应的标签页 const visibleTabs = []; for (const tab of allActiveTabs) { const windowInfo = await chrome.windows.get(tab.windowId); // 窗口状态非最小化,说明标签页可见 if (windowInfo.state !== 'minimized') { visibleTabs.push(tab); } }chrome.windows.get获取窗口状态,排除最小化窗口后,就能得到所有显示在屏幕上的活动标签页。
内容的提问来源于stack exchange,提问作者baNaNa
相关产品推荐
相关产品推荐

