如何在窗口之间切换时知道已打开的选项卡

时间:2014-05-02 00:17:47

标签: google-chrome-extension

在后台页面JS(持久性)中我跟踪currentSelected TabId的场景。 但是如果

  1. 我在“window_1”中选择了“tab_w_1”(即currentTabId ='tab_w_1')
  2. 然后从'tab_w_1'中的页面点击一个链接,打开另一个窗口'window_2'
  3. 这意味着现在选择'window_2'中的'tab_w_2'(即currentTabId ='tab_w_2')
  4. 现在如果我回到'window_1'(它将与我们离开时完全相同,即显示'tab_w_1')
  5. 我应该能够找到从window_1
  6. 中选择的'tab_w_1'
  7. 但是对于tabId当前选择仍然将'tab_w_2'视为选中,这是错误的:(
  8. 我使用chrome.tabs.onUpdated, chrome.tabs.onActivated跟踪当前选定的标签。但是在步骤4中,这些事件不会被调用。

    在多个窗口之间切换时,有没有办法获取当前选中的标签?

1 个答案:

答案 0 :(得分:2)

您可以使用事件chrome.windows.onFocusChanged检测第4步:

chrome.windows.onFocusChanged.addListener(function(integer windowId) {
    if( windowId !== chrome.windows.WINDOW_ID_NONE )
        chrome.tabs.query({active: true, windowId: windowId}, function( tabs ) {
            currentSelected = tabs[0].id;
        });
});