我试图调用window.open(..)然后调用window.print()。无论我做什么,窗户都会打开,直到打印窗口关闭。
<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>
是否有解决方法来完成这项工作?
答案 0 :(得分:0)
您的代码在Firefox中运行良好。 Chrome在打开新标签后(在加载内容之前)触发完成事件。这导致print(),它将阻止所有执行,包括其子代。
function PopupPrint() {
$.when(Popup()).done(function () {
setTimeout(function(){
window.print();
}, 300);
});
}
这将解决问题,并不完全是因为每个客户端的加载时间根据其Internet速度而不同。用最适用的替换300。