如何用JavaScript打开完整浏览器窗口而非标签页或弹窗
结论
不存在网页端可强制生效的技术方案能直接拉起带多标签、书签栏的完整独立浏览器窗口,该行为最终由浏览器配置与用户设置决定,网页侧没有越权控制的权限。
具体行为逻辑说明
- 当你调用
window.open()时完全不传入第三个features特性参数,即仅使用window.open(url)或window.open(url, 自定义窗口名称)写法时,浏览器会遵循用户的全局浏览配置处理跳转:- 若用户在浏览器设置中开启了「新链接打开为新窗口而非新标签页」,该调用就会打开带完整功能的独立浏览器窗口,包含多标签栏、书签栏、扩展栏、完整地址栏等所有原生浏览器组件
- 若用户默认配置是新链接打开为新标签页,该调用只会在当前浏览器窗口内新增标签页,不会弹出独立窗口
- 只要你给
window.open()传入了第三个features参数(不管是传尺寸、位置参数,还是传工具栏、菜单栏显隐参数),所有现代浏览器都会默认判定你需要打开的是应用弹窗,会自动隐藏标签栏、书签栏等组件,渲染为精简弹窗样式,这个默认逻辑没有前端可绕过的方法。 - 常规
<a target="_blank">链接的跳转逻辑和不传features的window.open()完全一致,行为同样受用户浏览器配置约束,无法强制打开完整独立窗口。
注:如果是用户主动将站点安装为PWA应用、或者手动给站点快捷方式设置了「独立窗口打开」规则,此时打开的窗口样式由用户的主动配置决定,不属于网页端可主动控制的范畴。
内容的提问来源于stack exchange,提问作者aljgom
相关产品推荐
相关产品推荐

