技术交流群:958923746,有学习视频,文档等。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>局部打印案例</title>
<script type="text/javascript">
function doPrint() {
bdhtml=window.document.body.innerHTML;
sprnstr="<!--startprint-->";
eprnstr="<!--endprint-->";
prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17);
prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));
window.document.body.innerHTML=prnhtml;
window.print();
}
</script>
</head>
<body>
<p>1不需要打印的地方</p>
<p>2这里不要打印啊</p>
<!--startprint--><!--注意要加上html里star和end的这两个标记-->
<h1>打印标题</h1>
<p>打印内容</p>
<!--endprint-->
<button type="button" onclick="doPrint()">打印</button>
<p>不打印的地方啊哈哈哈哈</p>
<p>2</p>
</body>
</html>
补充:在导出的时候发现一个问题,第一,只能导出一次。第二,点击导出,界面变化了。与之前不符合。
下面贴出解决办法,使用iframe,拼到里面,然后导出iframe即可解决。下面是修改后的JS方法。
<iframe id="printf" src="" width="0" height="0" frameborder="0"></iframe>
function printPage() {
//获取当前页的html代码
var bodyhtml = window.document.body.innerHTML;
//设置打印开始区域、结束区域
var startFlag = "<!--startprint-->";
var endFlag = "<!--endprint-->";
// 要打印的部分
var printhtml = bodyhtml.substring(bodyhtml.indexOf(startFlag),
bodyhtml.indexOf(endFlag));
// 生成并打印ifrme
var f = document.getElementById('printf');
var a = "";
a = '你的JS,CSS,样式';
a+=printhtml;
f.contentDocument.write(a);
f.contentDocument.close();
f.contentWindow.print();
}