window.print()在IE浏览器中没效果?
今天碰到一个很头疼的问题
之前一直用firefox调试,但是昨天boss查看演示的时候是在IE上,结果在打印一张网页表格的时候出现问题,换到firefox或者chrome上没有问题,
在调用window.print()对文档进行打印。但是一直不弹打印对话框
var newWindow = window.open();
newWindow.document.write(prnhtml);
newWindow.print();
newWindow.close();
上面的代码就是我的代码。
出现这样的问题,有一个显著的特点,就是你对document进行了写入操作,即调用了document.write。然后去调用window.print。
解决办法就是:在调用document.write后面,先调用document.close(),然后再去调用print,就可以了。
原因可能在于js调用write之后,就打开了一个流操作,只要没有关闭流操作,其他的系统性的调用,都是不会走的。代码如下
var newWindow = window.open();
newWindow.document.write(prnhtml);
newWindow.document.close();
newWindow.focus();
newWindow.print();
newWindow.close();
问题解决!