JS实现浏览器打印、打印预览示例

1.JS实现打印的方式

方式一:window.print()

window.print();会弹出打印对话框,打印的是window.document.body.innerHTML中的内容,下面是从网上摘到的一个局部打印的例子,该例子的不足是打印会修改页面的内容。

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type"content="text/html; charset=utf-8"/>

<title>局部打印案例</title>

<script type="text/javascript">  

  functiondoPrint() {  

    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>

 

方式二:使用html 标签<object>引入Webbrowser控件

这种方式是其只兼容IE,其他浏览器不可使用,同时IE10以下的浏览器才可以使用,调用方式如下:

<body>

  <object id="WebBrowser"classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height="0"width="0"></object>

</body>

<script>

  WebBrowser.ExecWB(1,1) //打开 

  WebBrowser.ExecWB(2,1) //关闭现在所有的IE窗口,并打开一个新窗口 

  WebBrowser.ExecWB(4,1) //保存网页

  //--------------- 常用 ---------------  

  WebBrowser.ExecWB(6,1) //打印 

  WebBrowser.ExecWB(7,1) //打印预览 

  WebBrowser.ExecWB(8,1) //打印页面设置 

  //------------------------------------- 

  WebBrowser.ExecWB(10,1) //查看页面属性 

  WebBrowser.ExecWB(15,1) //撤销 

  WebBrowser.ExecWB(17,1) //全选 

  WebBrowser.ExecWB(22,1) //刷新 

  WebBrowser.ExecWB(45,1) //关闭窗体无提示

</script>

这种方式优势是在IE下可以弹出打印预览,这是打印很人性化的功能,但是遗憾的是高版本的IE浏览器不支持WebBrowser了

方式三:采用document.execCommand(”print”)

该方式也兼容各个版本的浏览器,同window.print()一样,其启动的是打印对话框,chrome的打印对话框自带预览功能,但是IE、火狐仅仅只弹出打印设置对话框,没有预览功能。

方式四:采用JQuery插件

使用jQuery浏览插件可以很方便的进行局部打印,常用的插件有:

1)jquery.print.js 下载地址:https://github.com/DoersGuild/jQuery.print

2)jquery.print-preview.js 下载地址:https://github.com/etimbo/jquery-print-preview-plugin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Trouble-Solver

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值