我正在编写Google Chrome extension来管理标签(受Tabs Outliner的启发,Chrome 60已经破产)。我有一个弹出窗口显示以前关闭的浏览器窗口及其选项卡:
当我点击“已保存的窗口”时,事件处理程序调用
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将打开该大小的窗口,而不是弹出窗口的大小。
编辑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。