909422229_史上最简单的HTML调用浏览器打印机方法

 

技术交流群: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();
    }

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值