如何编程调整最大化子窗口大小?Chrome应用模式场景
解决Chrome应用模式子窗口最大化问题
方法一:用JavaScript先还原再调整尺寸
直接在子窗口页面中添加以下代码,即可模拟点击还原按钮的行为,再将窗口调整到指定尺寸:
// 判断窗口是否处于最大化状态 function isMaximized() { return window.outerWidth === screen.availWidth && window.outerHeight === screen.availHeight; } // 调整窗口到目标大小 function resizeToTarget(targetWidth, targetHeight) { if (isMaximized()) { // 还原窗口,对应点击还原按钮的操作 window.restore(); // 加小延迟确保还原操作完成,避免resize失效 setTimeout(() => { window.resizeTo(targetWidth, targetHeight); // 可选:将窗口居中显示 window.moveTo( Math.floor((screen.availWidth - targetWidth) / 2), Math.floor((screen.availHeight - targetHeight) / 2) ); }, 100); } else { window.resizeTo(targetWidth, targetHeight); } } // 页面加载完成后执行调整 window.onload = () => { resizeToTarget(1400, 1000); };
window.restore()是浏览器原生方法,专门用于将最大化/最小化的窗口恢复到之前的状态,完全对应手动点击还原按钮的效果。添加100毫秒延迟是为了等待浏览器完成还原动作,避免resize操作被忽略。
方法二:打开子窗口时直接指定尺寸
如果子窗口是通过主窗口的window.open()方法打开的,可以直接在打开时设置窗口大小,从根源避免子窗口默认最大化:
// 主窗口中打开子窗口的代码 window.open('子窗口URL', '_blank', 'width=1400,height=1000,top=100,left=100');
这种方式无需在子窗口中额外处理,直接就能打开指定尺寸的窗口,不会继承主窗口的最大化状态。
方法三:调整Chrome启动参数(可选)
若不想让子窗口默认继承最大化状态,可以修改启动脚本,去掉--start-maximized参数,改为在主窗口加载后手动最大化:
# 修改后的启动脚本 $flags = "--app=$applicationUrl --new-window" (New-Object -ComObject WScript.shell).Run('chrome.exe ' + $flags)
然后在主窗口页面中添加代码,实现加载完成后最大化主窗口:
window.onload = () => { window.maximize(); };
这样主窗口保持最大化的应用模式,但子窗口打开时不会默认最大化,直接使用resizeTo()即可生效。
内容的提问来源于stack exchange,提问作者Tian Qin
相关产品推荐
相关产品推荐

