如何在使用JavaScript函数打印时打印隐藏的DIV
我有一个javascript打印功能:如何在使用JavaScript函数打印时打印隐藏的DIV,javascript,jquery,asp.net,function,printing,Javascript,Jquery,Asp.net,Function,Printing,我有一个javascript打印功能: function printDetails() { var printContent = document.getElementById('<%= divMail.ClientID %>'); var windowUrl = 'about:blank'; var uniqueName = new Date(); var windowName = 'Print' + uni
function printDetails() {
var printContent = document.getElementById('<%= divMail.ClientID %>');
var windowUrl = 'about:blank';
var uniqueName = new Date();
var windowName = 'Print' + uniqueName.getTime();
var printWindow = window.open(windowUrl, windowName, 'left=500,top=500,width=0,height=0');
printWindow.document.write(printContent.innerHTML);
printWindow.document.close();
printWindow.focus();
printWindow.print();
printWindow.close();
return false;
}
问题是:
当我打印时,我获取divMail(DIV)的内容并将其发送到打印功能,问题是因为我在divMail中有一个隐藏的DIV,所以它不会显示在打印中。如何使打印功能显示隐藏的DIV?您可以将其指定为在CSS中打印时可见:
@media screen {
#showTopDetailsContent { display: none; }
#showTopDetailsContent.show { display: block; }
}
@media print {
#showTopDetailsContent { display: block !important; }
}
不要使用应用内联样式的.toggle()
,而是使用类
$('#showTopDetailsContent').toggleClass('show');
试试这个:
printWindow.document.getElementById('showTopDetailsContent').style.display='block';
之后
printWindow.document.write(printContent.innerHTML);
您需要在CSS中抑制边框
/* stop page from printing footer */
@page {
size: auto; /* auto is the initial value */
margin: 0mm; /* this affects the margin in the printer settings */
}
但这会使你的内容接近边缘,所以我会用一些填充物将所有内容包装在一个DIV中无论如何,我不知道有人会拒绝你的评论,它不起作用,因为打印功能打开了一个新窗口,@media print在那里不可用。@EricBergman-如果CSS块在DIV
divMail
中,它也会在打印窗口中可用。谢谢阿尔贝托,这正是我要找的。
printWindow.document.write(printContent.innerHTML);
/* stop page from printing footer */
@page {
size: auto; /* auto is the initial value */
margin: 0mm; /* this affects the margin in the printer settings */
}