我想打电话给window.open(..)然后是window.print()。不管我做什么,window.open卡在打印窗口关闭之前。
<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>
有办法解决这个问题吗?
发布于 2017-05-03 11:39:46
您的代码在firefox中运行良好。Chrome在打开新选项卡后(在加载内容之前)触发完成事件。这将导致print(),它将阻止所有的执行,包括其子执行。
function PopupPrint() {
$.when(Popup()).done(function () {
setTimeout(function(){
window.print();
}, 300);
});
}这将解决问题,并不是因为每个客户端的加载时间会因其互联网速度不同而不同。将300改为最适用的。
https://stackoverflow.com/questions/43757117
复制相似问题