Chrome扩展中如何获取所有已选中(非仅活跃状态)的标签页?
Chrome扩展中如何获取所有已选中(非仅活跃状态)的标签页?
嘿,这个问题确实容易让人混淆,先给你理清楚Chrome标签页的两个关键状态:
- 每个Chrome窗口里,你可以通过Shift点击选中多个标签页,但始终只有一个活跃标签页——一般就是你最近选中的那个。
- 平时我们常用的获取活跃标签页的方法,比如
chrome.tabs.onActivated.addListener((activeInfo) => {}),或者chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => {}),只能拿到那个活跃的标签页,没法覆盖所有被选中的标签。
要获取每个窗口中所有被选中的标签页,其实只需要调整chrome.tabs.query的参数即可——使用highlighted: true这个参数,它专门用来筛选被选中(高亮状态)的标签页。
举两个实用的例子:
- 获取当前窗口的所有选中标签页:
chrome.tabs.query({ highlighted: true, currentWindow: true }, (tabs) => { // tabs数组包含当前窗口内所有被选中的标签页对象 console.log("当前窗口选中的标签页:", tabs); });
- 获取所有Chrome窗口里的选中标签页:
chrome.tabs.query({ highlighted: true }, (tabs) => { // tabs数组包含所有窗口中被选中的标签页对象 console.log("所有窗口选中的标签页:", tabs); });
这个highlighted参数刚好对应你通过Shift点击选中的标签页,完全能满足你的需求哦~
内容来源于stack exchange
相关产品推荐
相关产品推荐

