Edge全屏Kiosk模式下window.open无法打开新窗口问题咨询
问题根因
你当前使用的--edge-kiosk-type=fullscreen属于单应用全屏Kiosk模式,该模式默认做了严格的窗口管控:仅允许保留1个主窗口运行,所有window.open、target="_blank"触发的跳转都会被强制重定向到当前窗口加载,禁止弹出独立新窗口。这是Kiosk模式默认的安全管控策略,和前端代码写法无关。
解决方案
根据实际场景需求二选一即可,原有测试代码不需要做任何修改。
方案1:保留全屏单应用Kiosk特性,追加启动参数放行新窗口
如果必须使用纯全屏单应用锁定模式,只需要在原有启动命令后追加--kiosk-new-window-allowed参数,即可放开新窗口弹出限制。修改后的启动命令如下:
"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" --kiosk C:\Users\10637\Desktop\test.html --edge-kiosk-type=fullscreen --kiosk-new-window-allowed
配置完成后重启Edge进入Kiosk模式,window.open调用就会按照你代码里配置的宽高、位置、工具栏显示规则弹出独立新窗口,且弹出的新窗口仍受Kiosk模式管控,用户无法通过新窗口退出锁定环境。
方案2:切换为公共浏览型Kiosk模式
如果不需要严格的单页全屏锁定,可以将Kiosk类型切换为公共浏览模式,该模式默认支持新窗口弹出,同时会自动隐藏地址栏、系统设置菜单等普通浏览器功能,满足公共自助设备的使用要求,启动命令如下:
"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" --kiosk C:\Users\10637\Desktop\test.html --edge-kiosk-type=public-browsing
注意事项
- 以上两个方案均要求Edge版本升级到94及以上,过低版本的Edge没有对应启动参数,会出现配置不生效的问题
- 可正常运行的测试代码参考:
<!DOCTYPE html> <html> <body> <p>Click the button to open a new browser window.</p> <button onclick="myFunction()">Click</button> <script> function myFunction() { window.open("https://www.google.com/search?q=help", "_blank", "toolbar=yes,width=600,height=400,left=600,top=500,status=yes,scrollbars=no,resize=no") return; } </script> </body> </html>
- 如果弹出窗口需要加载本地HTML文件,需要额外追加
--allow-file-access-from-files启动参数,避免触发本地文件安全拦截。
内容的提问来源于stack exchange,提问作者chellareddy v
相关产品推荐
相关产品推荐

