确定浏览器是否支持打印

Poi*_*nty 8 javascript browser printing cross-browser modernizr

我认为这个问题的答案几乎肯定是"不",因为我已经做了一些测试和周围进行搜索,但没有任何窍门,以检测是否window.print()甚至可能从一个工作页面内(即,从JavaScript)?我知道,即使在桌面/笔记本电脑上,也不可能知道系统上是否配置了打印机,但至少浏览器会打开一个打印对话框.

我的Android手机有一个window.print()功能,但它(不出所料)没有做任何事情.

我再一次问,所以在SO上有一个关于这个主题的好问题:-)

Jiv*_*ngs 5

不幸的是,它看起来像是不.该window.print()功能不是EMCAScript规范的一部分.这意味着它不需要成为JavaScript语言的一部分,也没有适当的文档来实现它.这是未定义的行为,因此测试它看起来非常困难.

资料来源:

编辑:

我写的可爱的小脚本来测试我的浏览器,只是检查打印功能是否存在然后要求打印:

if(window.print) {
    if(confirm('I can print. Would you like to?'))
        window.print()
}
Run Code Online (Sandbox Code Playgroud)


use*_*621 5

print()方法是同步的.这使得可以进行后果以确定是否已经显示打印对话框

var start = +new Date();
window.print();
var delta = + new Date() - start;
console.log(delta);
if (delta > 100) { console.log('It worked'); }
Run Code Online (Sandbox Code Playgroud)