//本打印方法: //1.不仅不会丢失原网页样式,更不会破坏原页面中的事件; //2.保证固定宽度居中打印,还不会出现多余的空白页。 //参数:id页面元素的id值,widthFit宽度自适应[不传或为假,宽度固定且内容居中] var print = function(id,widthFit){ var obj = document.getElementById(id); if(!obj) { layer.alert('当前没有打印区域'); return false; } var oldHtml = document.body.innerHTML; var root = $(':root').html(); var w = $(obj).width(); var printDiv = '<div style="display: table; margin:0 auto;width: '+w+'px">'+obj.innerHTML+'</div>'; if(widthFit) printDiv = '<div style="display: table; margin:0 auto;">'+obj.innerHTML+'</div>'; root = root.replace(oldHtml,printDiv); var newWin = window.open(); newWin.document.write(root); setTimeout(function () { newWin.print(); newWin.close(); },150); } 本方法基于jquery,有兴趣的朋友可以改成纯javascript。
以前没有用setTimeout,导致页面没有加载完成,所以有时打印空内容。