关于jquery.jqprint 打印 table的一些坑
一、案例
<!doctype html> <html> <head> <meta charset="utf-8"> <title>jQuery打印插件jqprint</title> <!-- <script language="javascript" src="jquery-1.4.4.min.js"></script> --> <!-- 如果您使用的是高版本jQuery,需要调用下面jQuery迁移辅助插件即可 <script src="http://www.jq22.com/jquery/jquery-migrate-1.2.1.min.js"></script>; 三个插件的顺序:jquery.1.9.1.min.js->jquery.jqprint-0.3.js->jquery-migrate-1.2.1.min.js(jqprint和migrate的顺序可互换) --> <script language="javascript" src="jquery.1.9.1.min.js"></script> <script language="javascript" src="jquery.jqprint-0.3.js"></script> <script src="jquery-migrate-1.2.1.min.js";></script> <script language="javascript"> function print() { $("#printBtn").jqprint(); } </script> </head> <body> <div id="printBtn"> <table> <tr> <td>test</td> </tr> </table> </div> <input type="button" onclick="print()" value="打印" /> </body> </html>
二、
如果当你点击打印按钮时,打印按钮不起作用,你需要检查是否调用了jquery的迁移辅助插件
三、打印样式问题
问题原因:jqprint的div.jqprint()方法是将div生成一个新的ifream,如果你没有import你的样式文件,页面样式那当然是没有的
解决办法:
1、在需要加样式的html语句上直接加style。(不建议使用:写的样式太多,特别是需要打印的列比较多的时候,js 拼一堆);
2、在link的样式文件后加上media="print"
<link href="cureentprint.css" rel="stylesheet" type="text/css" media="print"/>
注意:如果你将打印页面的样式,通过<style></style>直接写在head标签内,预览的时候可以看见设置 的样式,但是打印出来的表格是不具备style标签中的样式,所以需要把打印出来的样式加入到currentprint.css文件中。