gpt4 book ai didi

google-chrome-extension - Chrome 扩展程序 : select next tab?

转载 作者:行者123 更新时间:2023-12-01 12:45:39 26 4
gpt4 key购买 nike

Chrome 扩展程序:如何激活当前选项卡旁边的选项卡(即右侧的选项卡)。这是我的代码,但它不能正常工作 - 而不是下一个选项卡,一个随机选项似乎被激活。

特别是我认为选项卡的索引属性在当前页面中从左到右指示其索引是否正确?

// switch to next tab
function nextTab() {
// first, get currently active tab
chrome.tabs.query({active: true}, function(tabs) {
if (tabs.length) {
var activeTab = tabs[0],
tabId = activeTab.id,
currentIndex = activeTab.index;
// next, get number of tabs in the window, in order to allow cyclic next
chrome.tabs.query({currentWindow: true}, function (tabs) {
var numTabs = tabs.length;
// finally, get the index of the tab to activate and activate it
chrome.tabs.query({index: (currentIndex+1) % numTabs}, function(tabs){
if (tabs.length) {
var tabToActivate = tabs[0],
tabToActivate_Id = tabToActivate.id;
chrome.tabs.update(tabToActivate_Id, {active: true});
}
});
});
}
});
}

编辑:

问题似乎是查询 chrome.tabs.query({active: true}, function(tabs){...})似乎返回了不止一个标签。
我的窗口目前有 14 个选项卡,其中 7 个似乎有 active属性真实。这里发生了什么?我也尝试过基于 {selected: true} 的查询,但给出了错误: Invalid value for argument 1. Property 'selected': Unexpected property.
任何帮助将非常感激

最佳答案

您似乎打开了多个 Chrome 实例。
要将选项卡查询的上下文保留到当前实例,您应该添加 currentWindow: true对您提出的每个查询。否则它会搞砸来自所有其他实例的所有选项卡 ID。

例如,您的第一个查询将如下所示:

chrome.tabs.query({ active: true, currentWindow: true }, function(tabs) { // ...

关于google-chrome-extension - Chrome 扩展程序 : select next tab?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16276276/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com