zoukankan      html  css  js  c++  java
  • window.print()打印页面指定内容(使用iframe保证原页面不失效)

    使用window.print()时会出现两个问题:

    (1)直接使用window.print() 打印的是整页内容-->无法实现打印指定区域

    (2)打印时替换body中的内容,打印完成后再替换回来-->这样会导致原来页面状态失效

     使用iframe即可打印指定内容,也可保证页面不失效,具体方法如下:

    1、将打印的内容独立出来为一个print.html文件,并为页面添加打印事件

    <!DOCTYPE html>
    <html>
    <head>
       ...
    </head>
    <body>
        ...打印内容
    </body>
    <script>
        function iframePrint(){    //添加打印事件
          window.print();
        }
    </script>

    2、在原页面中使用iframe引入打印页面

    <!DOCTYPE html>
    ...
    <iframe src="print.html" frameborder="0" id="printIframe" name="printIframe" ></iframe>
    ...
    <button id="btn">打印</button>
    ...

    3、打印事件绑定,在原页面中调用print.html中的打印事件(为方便表示这里使用jq绑定事件)

    $("#btn").on("click",function(){
            document.getElementById('printIframe').contentWindow.iframePrint();
    })

    至此,点击打印即可实现iframe中内容的打印 ;

    ///////////////////////////方式二////////////////////////////////////

    当然,还有一种方式就是使用媒体查询写两套样式也可实现

    <style type="text/css">
        h1 {color:#FF0000;}
        ...网页显示css
    </style>
    
    <style type="text/css" media="print">
        h1 {color:#000000;}
        ...打印css
    </style>
  • 相关阅读:
    linux Crontab 使用
    彻底搞懂 call() 和 apply() 方法
    (day10) 28. 实现strStr()
    (day9)357. 计算各个位数不同的数字个数
    (day7) 168. Excel表列名称
    (day6) 319. 灯泡开关
    (day5)350 两个数组的交集 II
    (day4)581.最短无序连续子数组
    day3 字符串的排列
    JS类型转换
  • 原文地址:https://www.cnblogs.com/pangys/p/6879562.html
Copyright © 2011-2022 走看看