我正在制作Chrome扩展程序,用于监控用户在网页浏览期间的活动。我为选项卡创建,选项卡删除,选项卡激活放置了一些监听器并且工作正常。问题是当我关闭带有更多选项卡的窗口时,控制台会显示:
来自windowID 1的所有标签通常都会关闭,但是在关闭窗口之后会出现一个错误,导致第67和第61行听到onActivated
chrome.tabs.onActivated.addListener(function(activeInfo){
return chrome.tabs.get(activeInfo.tabId, function(tab){ // LINE 61
return post_to_console({
timestamp: gimme_timestamp(),
activity: "TAB_ACTIVATED",
winid: activeInfo.windowId,
tabid: activeInfo.tabId,
url: tab.url, // LINE 67
user_id: _user_id,
fromindex: "undefined",
toindex: "undefined"
});
});
});
我不确定,但我认为在选项卡和窗口关闭onActivated事件后会发生火灾。 这是关闭选项卡和关闭窗口的代码:
chrome.tabs.onRemoved.addListener(function(tab, removeInfo){
_winid = removeInfo.windowId;
_tabid = tab;
return post_to_console({
timestamp: gimme_timestamp(),
activity: "CLOSE_TAB",
winid: _winid,
tabid: _tabid,
url: "undefined",
user_id: _user_id,
fromindex: "undefined",
toindex: "undefined"
});
});
chrome.windows.onRemoved.addListener(function(win){
return post_to_console({
timestamp: gimme_timestamp(),
activity: "CLOSE_WINDOW",
winid: win,
tabid: "undefined",
url: "undefined",
user_id: _user_id,
fromindex: "undefined",
toindex: "undefined"
});
});
我知道chrome.tabs.get会抛出错误,因为在那个时间窗口中,其标签不再存在,但为什么毕竟调用onActivated事件。 我感谢任何来自我们的帮助。感谢