5

Chrome 拡張機能: 現在のタブの横にあるタブ (つまり、右側のタブ) を有効にするにはどうすればよいですか? これは私が持っているコードですが、正しく動作しません。次のタブではなく、ランダムなタブがアクティブになっているようです。

特に、タブの index プロパティが現在のページの左から右へのインデックスを示していると仮定するのは正しいでしょうか?

// 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プロパティが true になっているようです。何が起きてる?に基づいてクエリも試みまし{selected: true}たが、エラーが発生しました:Invalid value for argument 1. Property 'selected': Unexpected property.

どんな助けでも大歓迎です

4

1 に答える 1