0

我需要从用户离开的选项卡中获取数据(打开其他选项卡或继续其他程序)。

但是 chrome.tabs 似乎没有提供允许这样做的事件。

之前显然有 chrome.tabs.onSelectionChanged (未测试),但它已被弃用。

其他事件正在提供新标签的数据,而不是用户刚刚离开的数据......

我也尝试使用 jQuery $(window).blur 事件,但我必须调用用户留下的选项卡的 chrome.storage(我为每个由选项卡 ID 命名的选项卡创建一个存储),但我没有得到存储与此事件​​的及时响应(存储的结果用于 if() 以了解我是否有显示确认框。

有人可以帮助我吗?

谢谢 !

4

1 回答 1

2

要检测选项卡更改,只需使用chrome.tabs.onActivated. 由于您对上一个选项卡感兴趣,因此将事件的结果存储在每个事件的末尾。例如,像这样:

var storedWindowInfo = {};
chrome.tabs.onActivated.addListener(function(activeInfo) {
    var windowLastTabId = storedWindowInfo[activeInfo.windowId];
    if (windowLastTabId) {
        // Do something with previous tab, e.g. send a message:
        chrome.tabs.sendMessage(windowLastTabId);
    }
    // Update ID of currently active tab in the current window
    storedWindowInfo[activeInfo.windowId] = activeInfo.tabId;
});

注意:只有 tabID 和 windowID 被提供给这个事件。您需要发出chrome.tabs.query来获取更多信息,例如选项卡是否仍然存在,它的 URL 等。

于 2013-05-13T15:44:49.323 回答