0

我正在编写一个 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);
 }

然后我使用以下方法恢复窗口:

chrome.windows.create(json_from_before);

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

4

0 回答 0