Google chrome extension 当我关闭一个窗口,然后打开另一个窗口时,所选选项卡将由Chrome重新创建

Google chrome extension 当我关闭一个窗口,然后打开另一个窗口时,所选选项卡将由Chrome重新创建,google-chrome-extension,Google Chrome Extension,我正在编写一个保存/恢复浏览器窗口状态的Chrome扩展,因此,我保存给定窗口的状态: var properties = [ "top", "left", "width", "height", "incognito", "focused", "type" ];

我正在编写一个保存/恢复浏览器窗口状态的Chrome扩展,因此,我保存给定窗口的状态:

     var properties = [ "top", 
                "left",
                "width",
                "height",
                "incognito",
                "focused",
                "type"
              ];
     var json = {};
     var cache = chrome_window_object;

     // copy only the keys we care about:
     _.each(properties,function(key,value) {
            json[key] = cache[key];
        });

     // then copy the URLs of the tabs, if they exist:

     if(cache.tabs) {
         json.url = [];
         _.each(cache.tabs,function(tab) {
            json.url.push(tab.url);
            });
     }

     return json;
在将来的某个时候,我会删除所有窗口:

     closeAllWindows: function(done_callback) {
     function got_all(windows) {
     var index = 0;

     // use a closure to only close one window at a time:
     function close_next() {
         if(windows.length <= index) return;

         var window = windows[index++];
         chrome.windows.remove(window,close_next);
     }

     // start closing windows:
     close_next();
     }
     chrome.windows.getAll(got_all);
 }

创建的窗口中有一个额外的选项卡,无论我刚刚关闭的窗口中有什么。。。我完全不知所措,我认为问题是我在代码中做的事情,我还没有发布(这是一个很大的扩展)。我花了几个小时逐行检查代码,确保没有明确要求创建此选项卡。那么-以前有人见过类似的东西吗?

您检查过JSON字符串中是否有额外的选项卡吗?问题在于序列化窗口时包含了一个额外的选项卡,或者在JSON中没有描述的情况下创建了一个额外的选项卡。@apsillers-这是我检查的第一件事-我要传递给的JSON blob。create中没有这样的选项卡。在创建窗口后,它由me/chrome添加。我想,我的主要问题是,有没有办法找出为什么/如果chrome创建了一个标签?
chrome.windows.create(json_from_before);