You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Edge浏览器中打开并关闭打印弹窗后关闭按钮失效问题

Edge浏览器:触发打印窗口后window.close()失效的已知Bug

问题复现场景

  • 页面配有PrintClose两个按钮,均使用href="#"并绑定onclick事件
  • 正常流程:未点击Print按钮时,Close按钮调用window.close()可以正常关闭当前窗口
  • Edge专属异常:点击Print按钮唤起Windows 10标准打印弹窗后,无论选择「取消」还是直接关闭打印窗口,后续点击Close按钮时,所有window.close()相关写法都彻底失效

已验证无效的解决方案

我尝试了社区里常见的各种window.close()替代方案,包括但不限于:

// 阻止默认事件后执行关闭
(function(e){e.preventDefault(); window.close()})(event)

// 通过event.view对象调用关闭
event.view.close();
event.view.top.close();

// 打开空白页后关闭当前窗口
window.open('','_self').close();

// 重新加载当前页后关闭
var ww = window.open(window.location, '_self'); ww.close();

同时也在Close按钮的点击事件末尾添加了event.preventDefault();来规避href="#"的默认跳转行为,但问题没有任何改善。

问题确认

这个问题是Edge浏览器的已知Bug,目前官方渠道已经有对应的问题反馈线程,和我们遇到的场景完全匹配。

当前建议

截至目前,官方还没有发布修复补丁,建议大家:

  • 关注Edge浏览器的版本更新,等待官方修复;
  • 若有紧急需求,可以尝试规避方案:比如单独新开一个窗口来触发打印操作,避免影响原窗口的window.close()功能,但这种方式可能会降低用户体验;
  • 给用户做临时提示:如果需要关闭窗口,避免先触发打印操作。

内容的提问来源于stack exchange,提问作者sevdalin

火山引擎 最新活动