通过 js 控制打印指定 div ,有几种常见办法。
1、通过替换网页原内容为 div 内容
- function printdiv(obj) {
- var headstr = '<meta charset="utf-8" />';
- var printData = document.getElementById(obj).innerHTML;
- var originalBody = document.body.innerHTML;
- document.body.innerHTML = headstr + printData;
- window.print();
- document.body.innerHTML = originalBody;
- return false;
- }
这种方法在打印时候,把网页内容替换为div 内容,打印完毕后替换回原理的网页。
2、新建弹窗插入指定 div 内容
- function printdiv(obj) {
- var printWindow = window.open(location.href, "_blank");
- var printData = document.getElementById(obj).innerHTML;
- printWindow.document.write(printData);
- printWindow.document.close();
- printWindow.print();
- printWindow.close();
- return false;
- }
这种方法在打印时候,新建一个窗口,把指定 div 放到窗口中去,并打印。
注:这种办法会导致CSS文件失效,也就是样式用不了CSS文件里面的,需要在页面每个元素上写内置样式。
3、CSS 控制打印时隐藏
放在页面头部
- <style type="text/css" media=print>
- .noprint{display : none }
- </style>
如果不想放在页面头部,下面这段放在 css 文件中,功能一样
- @media print{
- .noprint { display: none }
- }
这种方法在打印时候,在相应不需要打印的位置添加该类,然后直接执行
window.print(); 打印页面就行了。
完毕!
评论 (0)