我想使用一个新窗口来打印HTML的一部分。
var cssLink = document.getElementByTagName('link')[2];
var prtContent = document.getElementById('print_body');
var WinPrint = window.open('','','left=0,top=0,width=1000,height=auto,toolbar=0,scrollbars=0,status=0');
WinPrint.document.write(prtContent.innerHTML);
WinPrint.document.getElementsByTagName('head')[0].appendChild(link);
WinPrint.document.close();
WinPrint.focus();
WinPrint.print();
但是在WinPrint进行系统打印时,有时为,但CSS文件仍未加载。
我该如何解决?
最佳答案
听起来有时候浏览器没有及时加载CSS文件供您打印。您只能在加载css文件之后运行打印代码,如下所示:
var cssElement = document.getElementsByTagName('link')[2].cloneNode();
var prtContent = document.getElementById('print_body');
var WinPrint = window.open('','','left=0,top=0,width=1000,height=auto,toolbar=0,scrollbars=0,status=0');
WinPrint.document.write(prtContent.innerHTML);
WinPrint.document.close();
cssElement.addEventListener('load', function () {
WinPrint.focus();
WinPrint.print();
});
WinPrint.document.head.appendChild(cssElement);