首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >window.print()阻塞window.open(..)

window.print()阻塞window.open(..)
EN

Stack Overflow用户
提问于 2017-05-03 10:10:51
回答 1查看 1.6K关注 0票数 0

我想打电话给window.open(..)然后是window.print()。不管我做什么,window.open卡在打印窗口关闭之前。

代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button onclick="PopupPrint();" class="btn btn-primary"> Print </button>

<script>
  function PopupPrint() {
    $.when(Popup()).done(function() {
      window.print();
    });
  }

  function Popup() {
    window.open("https://google.com", "_blank");
  }
</script>

有办法解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-03 11:39:46

您的代码在firefox中运行良好。Chrome在打开新选项卡后(在加载内容之前)触发完成事件。这将导致print(),它将阻止所有的执行,包括其子执行。

代码语言:javascript
复制
function PopupPrint() {
    $.when(Popup()).done(function () {
        setTimeout(function(){
            window.print();
        }, 300);
    });
}

这将解决问题,并不是因为每个客户端的加载时间会因其互联网速度不同而不同。将300改为最适用的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43757117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档