确定浏览器是否支持打印

时间:2012-02-13 22:13:12

标签: javascript browser printing cross-browser modernizr

我认为答案几乎肯定是“不”,因为我已经做了一些测试和搜索,但有没有任何技巧来检测window.print()甚至是否从页面内部(即从JavaScript)开始工作?我知道,即使在桌面/笔记本电脑上,也无法知道系统上是否配置了打印机,但至少浏览器会打开一个打印对话框。

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

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

3 个答案:

答案 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