Javascript新窗口打开并打印CSS加载

时间:2018-08-21 03:58:50

标签: javascript jquery html css google-chrome

我想使用一个新窗口来打印HTML的一部分。

Audit.Core.Configuration.Setup()
    .UseCustomProvider(new SQLiteDataProvider());

但是有时,当WinPrint进行系统打印时,CSS文件仍然没有加载。

我该如何解决?

2 个答案:

答案 0 :(得分:2)

听起来好像有时候浏览器没有及时加载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);

答案 1 :(得分:0)

我认为它将为您工作。

var cssLink = document.getElementByTagName('link')[2];

var prtContent = document.getElementById('print_body');

// open _blank page view before printing
var WinPrint = window.open('','_blank','left=0,top=0,width=1000,height=auto,toolbar=0,scrollbars=0,status=0');

// add new line code here
WinPrint.document.open();
WinPrint.document.write(prtContent.innerHTML);
WinPrint.document.getElementsByTagName('head')[0].appendChild(link);
WinPrint.document.close();
// remove WinPrint.focus() and WinPrint.print() because it will call print machine of system

因此,如果要显示CSS以进行打印。您可以尝试。

@media print {
    your css here
}

在此处查看更多:https://www.w3.org/Amaya/User/doc/Printing.html