我认为答案几乎肯定是“不”,因为我已经做了一些测试和搜索,但有没有任何技巧来检测window.print()
甚至是否从页面内部(即从JavaScript)开始工作?我知道,即使在桌面/笔记本电脑上,也无法知道系统上是否配置了打印机,但至少浏览器会打开一个打印对话框。
我的Android手机有一个window.print()
功能,但(不出所料)没有做任何事情。
我再次提问,所以在SO上有一个关于这个主题的好问题: - )
答案 0 :(得分:5)
不幸的是,它看起来像是不。 window.print()
函数不是EMCAScript规范的一部分。这意味着它不需要成为JavaScript语言的一部分,也没有适当的文档来实现它。它是未定义的行为,所以测试它看起来非常困难。
来源:
修改强>
我写的可爱小脚本来测试我的浏览器,只是检查打印功能是否存在然后要求打印:
if(window.print) {
if(confirm('I can print. Would you like to?'))
window.print()
}
答案 1 :(得分:5)
print()
方法是同步的。这使得可以进行后果以确定是否已显示打印对话框
var start = +new Date();
window.print();
var delta = + new Date() - start;
console.log(delta);
if (delta > 100) { console.log('It worked'); }
答案 2 :(得分:3)
beforeprint and afterprint events可能有所帮助,但我不确定浏览器支持。
编辑:Webkit does not support them