我需要从用户离开的标签中获取数据(切换其他标签或继续使用其他程序)。
但是chrome.tabs似乎没有提供允许这样做的事件..
之前显然有chrome.tabs.onSelectionChanged(未经测试),但已被弃用。
其他事件正在提供新标签的数据,而不是用户刚刚离开的标签......
我也尝试了jQuery $(window).blur事件,但是我必须调用用户留下的标签的chrome.storage(我为标签id命名的每个标签创建一个存储)并且我没有得到这个事件的存储响应(存储的结果用在if()中,知道我是否有显示确认框。
有人可以帮助我吗?
Thx!
答案 0 :(得分: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
以获取更多信息,例如标签是否仍然存在,其网址等。