Chrome扩展程序:创建默认(Ctrl + N)浏览器窗口大小的窗口?

时间:2017-08-15 13:14:50

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

我正在编写Google Chrome extension来管理标签(受Tabs Outliner的启发,Chrome 60已经破产)。我有一个弹出窗口显示以前关闭的浏览器窗口及其选项卡:

screenshot

当我点击“已保存的窗口”时,事件处理程序调用

chrome.windows.create(
        {
            url: urls,     // Array of the URLs of the tabs, here ['https://demozoo.org']
            focused: true
        },
        function(win) {
            // callback code omitted
        }
);

这样可行,但生成的窗口与弹出窗口的大小相同,如果按Ctrl + N,则与普通浏览器窗口的大小不同。如何以Ctrl + N尺寸创建窗口?

一些解决方法:

根据{{​​3}}的建议

修改,如果有一个窗口打开,我可以使用chrome.windows.get()来获取其大小和位置,然后以该大小创建。但是,我正在寻找一种解决方案,即使除了我的弹出窗口之外没有其他窗口打开也能正常工作。在这种情况下,chrome.windows.getAll()仅返回弹出窗口。但是,最后关闭(非弹出窗口?)窗口的大小是保存在某个地方的,因为我的弹出窗口中的Ctrl + N将打开该大小的窗口,而不是弹出窗口的大小。

根据{{​​3}}的建议

编辑2 ,我可以通过捕获所有wOxxOm来手动跟踪最近关闭的窗口的大小。 (我也必须跟踪onCreated,例如,在Chrome启动之后,在任何窗口关闭之前。)但是,由于Chrome已经跟踪了这个,我想知道我是否可以阅读Chrome的价值而不是重复工作。

原始如果我检查弹出窗口,在控制台中,我可以运行

chrome.windows.create()

并获得一个与普通窗口大小相同的窗口。但是,如果我提供任何URL,例如:

chrome.windows.create({url:'about:blank'})

窗口具有父弹出窗口的大小。作为解决方法,我可以使用Mayken,然后使用chrome.windows onRemoved events一次手动添加一个标签。但是,如果可能的话,我想保留urls: [...]参数的便利性。

或者,我可以使用chrome.windows.create()创建一个空窗口,获取其大小,关闭它,然后打开具有指定大小的新窗口。不过,我并不是闪烁风险的忠实粉丝。

我已在线查看,无法找到访问默认大小的方法或创建一个默认大小为urls的窗口。信息位于配置文件的Preferences文件中,每chrome.windows.create(),但我无法找到可靠的跨平台方式来构建配置文件目录的file:// URL。我也无法在chrome.tabs.create()中找到看似提供个人资料信息的API。

0 个答案:

没有答案