使用setTimeout的Javascript打印

使用setTimeout的Javascript打印,javascript,Javascript,我试图设置打开pdf和调用pdf文件的打印功能之间的延迟。目前没有发生任何事情,但如果我将打印函数移到setTimeout之外,它将调用打印函数,但这不是我想要的,因为它太快,并且pdf尚未加载。当我在setTimeout中放置警报时,它们在指定的3秒钟内被称为fine var pdfWin = window.open(docPath); setTimeout(function() { pdfWin.print(); },3000) 我的问题是:为什么不调用print函数 提前谢谢 va

我试图设置打开pdf和调用pdf文件的打印功能之间的延迟。目前没有发生任何事情,但如果我将打印函数移到setTimeout之外,它将调用打印函数,但这不是我想要的,因为它太快,并且pdf尚未加载。当我在setTimeout中放置警报时,它们在指定的3秒钟内被称为fine

var pdfWin = window.open(docPath);
setTimeout(function() {
   pdfWin.print();
},3000)
我的问题是:为什么不调用print函数

提前谢谢

var pdfWin = window.open(docPath);
pdfWin.onload = function() {
    pdfWin.print();
};
在chrome上对我来说很好

由于,如果窗口与父窗口位于同一域中,则只能在该窗口上调用
.print()
。否则我可以在我的页面上打开你的facebook并在那里提交一些表格;p

在chrome上对我来说很好


由于,如果窗口与父窗口位于同一域中,则只能在该窗口上调用
.print()
。否则我可以在我的页面上打开你的facebook并在那里提交一些表格;p

你不应该为此目的使用超时。您无法预测下载文件所需的时间,因为用户的互联网速度和服务器的响应时间会有所不同。您应该使用在下载文件时触发的事件处理程序。我理解这一点,但这不是最终的解决方案。我只是想在我继续做其他事情之前看到输出。你不应该为此使用超时。您无法预测下载文件所需的时间,因为用户的互联网速度和服务器的响应时间会有所不同。您应该使用在下载文件时触发的事件处理程序。我理解这一点,但这不是最终的解决方案。我只想在我转到其他+1-好的解决方案之前看到输出。对于其他用户来说,如果
docPath
是位于同一个域上的引用,那么这可能很好地说明了这一点。否则,
onload
将无法启动。@insertUserName此处是的,我现在添加了一个选项:)+1-很好的解决方案。对于其他用户来说,如果
docPath
是位于同一个域上的引用,那么这可能很好地说明了这一点。否则,
onload
将不会触发。@insertUserName此处是的,我现在添加了这一点:)