如何在Chrome浏览器窗口关闭之前获取标签?

时间:2011-01-18 03:18:15

标签: javascript google-chrome google-chrome-extension

我正在使用谷歌Chrome扩展程序,我试图在窗口关闭之前捕获所有选项卡:

chrome.windows.onRemoved.addListener(function(windowId) {
    chrome.windows.get(windowId, function(window) {
        alert(window.tabs); 
    });
});

但我认为在我到达window.tabs之前,窗口实际上已经被破坏了。如何在删除窗口之前获取其ID?

谢谢!

1 个答案:

答案 0 :(得分:3)

你是对的,当你关闭一个窗口时,在Chrome中,所有选项卡将先关闭,然后窗口本身将关闭。

如果你想在关闭一个窗口之前捕获所有标签,我相信据我所知,最好的方法是将听众连接到tabs onRemoved事件http://code.google.com/chrome/extensions/tabs.html#event-onRemoved

您必须维护正在关闭的内部缓存,并且当窗口关闭时,您将读取该缓存。它可能会变得棘手,还有一些你需要解决的问题。

例如,您如何知道所有这些标签都已关闭?也许这个问题的答案是制作一个1秒的计时器,并计算该状态下所有关闭的标签,并在计时器结束后重置它。可能还有其他方法。

希望有所帮助,祝你好运!