陈建华的博客
专注web开发
在IE9下,window.print()不弹出打印对话框的解决办法
2015-09-10 11:34:33   阅读5752次

在ie9下面,出现了一个非常头疼的问题。调用window.print()对文档进行打印。但是一直不弹打印对话框。结果我刷新页面,页面加载完成之后,打印对话框自动弹出来了。

function printDiv() {
    var divToPrint = document.getElementById('printArea');
    newWin= window.open();
    newWin.document.write(divToPrint.innerHTML);
    newWin.print();
    newWin.close();
}

上面的代码就是我的代码。

出现这样的问题,有一个显著的特点,就是你对document进行了写入操作,即调用了document.write。然后去调用window.print。

解决办法就是:在调用document.write后面,先调用document.close(),然后再去调用print,就可以了。

原因可能在于js调用write之后,就打开了一个流操作,只要没有关闭流操作,其他的系统性的调用,都是不会走的。代码如下

function printDiv() {
    var divToPrint = document.getElementById('printArea');
    newWin= window.open();
    newWin.document.write(divToPrint.innerHTML);
    newWin.document.close();
    newWin.focus();
    newWin.print();
    newWin.close();
}




-----------------------------------------------------
转载请注明来源此处
原地址:#

-----网友评论----
1楼:fringe 发表于 2015-12-24 15:33:25
很好用  解决问题了
2楼:Jason_SAP 发表于 2017-03-24 15:48:01
你的方法,正确的帮我解决了问题,非常感谢。
3楼:ccKK 发表于 2017-12-20 15:18:10
解决问题了,很不错,谢谢
-----发表评论----
微网聚博客乐园 ©2014 blog.mn886.net 鲁ICP备14012923号   网站导航