对于上下文:在我的页面上,我想通过按钮或链接调用window.print函数。打印不会采用当前显示的内容,而是使用display:none div,将其放入新窗口,使其可见并启动打印。在新打开的窗口中可见的内容非常好,但是实际生成的打印结果始终会附加一个空白页。
这是有问题的JS代码:
<Script>
var printContent = document.getElementsByClassName("PrintTable")[0];
printContent["display"]="block";
var logo = document.getElementsByClassName("Logo")[0];
logo["display"]="block";
var cssLocation = "legitcsslink";
WinPrint.document.write('<!DOCTYPE html>');
WinPrint.document.write('<html> <head>');
WinPrint.document.write('<link rel="stylesheet" href=' + cssLocation + ' type="text/css" />');
WinPrint.document.write('</head> <body>');
WinPrint.document.write(logo.innerHTML);
WinPrint.document.write(printContent.innerHTML);
WinPrint.document.write('</body> </html>');
WinPrint.document.close();
WinPrint.focus();
WinPrint.print();
</Script>
这是在将标题等(包括对CSS的引用)手动写入WinPrint之后开始发生的,因为它以前不会在WinPrint中使用我的CSS。
我已经尝试了几件事,例如通过this solution在该代码段中手动设置高度,分页符和溢出,但是这些都无济于事,我完全迷失了。