我的Wordpress插件的这个功能使用jQuery从div打印带有“table_disp”类的内容。如何打印css样式。
function pop_print(){
w=window.open(null, 'Print_Page', 'scrollbars=yes');
w.document.write(jQuery('.table_disp').html());
w.document.close();
w.print();
}
有什么想法吗?
答案 0 :(得分:10)
您需要在弹出窗口的父页面中包含您正在使用的SAME样式表。您可能想要制作一个包含样式表的虚拟页面存根/包装器,然后注入HTML。
var myStyle = '<link rel="stylesheet" href="http://mysite.com/mystyle.css" />';
w.document.write(myStyle + jQuery('.table_disp').html());
答案 1 :(得分:3)
function PrintElem(elem) {
Popup(jQuery(elem).html());
}
function Popup(data) {
var mywindow = window.open('', 'my div', 'height=400,width=600');
mywindow.document.write('<html><head><title></title>');
mywindow.document.write('<link rel="stylesheet" href="http://www.test.com/style.css" type="text/css" />');
mywindow.document.write('<style type="text/css">.test { color:red; } </style></head><body>');
mywindow.document.write(data);
mywindow.document.write('</body></html>');
mywindow.document.close();
mywindow.print();
}
<a href="#" id="hrefPrint" onclick="PrintElem('.print_div')">Print</a>
答案 2 :(得分:1)
如果你可以添加插件,那么Jquery printThis插件效果很好(因为你已经在使用jQuery),并且完全符合你的需要。 http://plugins.jquery.com/printThis/
它制作一个iframe并使用你的页面css plus允许一个专门用于打印的附加css文件,以及其他东西
答案 3 :(得分:0)
附加样式表
var css= '<link rel="stylesheet" href="/css/print.css" />';
var printContent = document.getElementById("printContentID");
var WinPrint = window.open('', '', 'width=900,height=650');
WinPrint.document.write(printContent.innerHTML);
WinPrint.document.head.innerHTML = css;
WinPrint.document.close();
WinPrint.focus();
WinPrint.print();
WinPrint.close();