Javascript 窗口。打印速度非常慢。在打印之前发出警报

Javascript 窗口。打印速度非常慢。在打印之前发出警报,javascript,Javascript,在下面的代码中,第二个警报出现在第一个打印弹出页面之前。 搜索结果显示window.print是一项操作系统功能,没有返回值 第二个警报应仅在打印弹出窗口之后出现。 好心帮忙 <script> function myFunction() { for(i=0;i<6;i++){ alert('Printing Copy:'+i); window.print(); } } </sc

在下面的代码中,第二个警报出现在第一个打印弹出页面之前。 搜索结果显示window.print是一项操作系统功能,没有返回值

第二个警报应仅在打印弹出窗口之后出现。 好心帮忙

<script>
    function myFunction() {
        for(i=0;i<6;i++){
            alert('Printing Copy:'+i);
            window.print();
        }
    }
</script>
window.print是一个异步函数。异步意味着执行将立即返回到调用函数,而该函数预期执行的任何操作都将在另一时间发生

在您的案例中发生的情况是:您循环了好几次,每次都提醒用户您要打印文档,然后调用print。但是,print调用将立即返回,循环将进入第二次迭代,然后会弹出第一次迭代的print对话框

作为补救措施,您可以使用onbeforeprint提醒用户您将要打印文档

function myFunction() {
    for(i=0; i<6; i++){
        window.onbeforeprint = function(){
            alert("Printing copy:" + i);
        }

        window.print();
    }
}

注意:如果您不了解这段代码是如何工作的,您可能希望搜索并了解一些有关JavaScript闭包、回调和异步函数的信息。

您以前调用过它,它在。。。怎么了?另外,要知道在你的情况下,警报只会弹出一次。打印时使用的浏览器相同吗?我没有chrome的这个问题,两个函数调用都被阻塞了…我在chrome控制台中运行了这个代码段,每个警报都显示在相应的打印弹出窗口之前,即alert0,然后打印模型,然后alert1,然后打印模型。。。等。您使用的浏览器是什么?第二个警报出现在第一个打印弹出页面之前。第二个警报说什么?