zoukankan      html  css  js  c++  java
  • 使用javascript对网页的部分内容进行打印

    <script type="text/javascript" src="jquery-1.3.2.min.js"></script>

     

    function PrintContent(el) {

            var iframe = document.createElement('IFRAME');
            var doc = null;
            $(iframe).attr('style', 'position:absolute;0px;height:0px;left:-500px;top:-500px;');
            document.body.appendChild(iframe);
            doc = iframe.contentWindow.document;
            var links = window.document.getElementsByTagName('link');
            for (var i = 0; i < links.length; i++)
                if (links[i].rel.toLowerCase() == 'stylesheet')
                doc.write('<link type="text/css" rel="stylesheet" href="' + links[i].href + '"></link>');
            doc.write('<div class="' + $(el).attr("class") + '">' + $(el).html() + '</div>');
            doc.close();
            iframe.contentWindow.focus();
            iframe.contentWindow.print();
            document.body.removeChild(iframe);

    }

     

    window.print()  实际上,是浏览器打印功能菜单的一种程序调用。与点击打印功能菜单一样,不能精确分页,不能设置纸型,套打的问题更加无从谈起,只不过,可以让用户不用去点菜单,直接点击网页中的一个按钮,或一个链接里面调用罢了。事实上,很多用户都是采用这种方式打印,但是这种方式最致命的缺点是不能设置打印参数,比如纸型,页边距,选择打印机等等。

    需要指出的是这种方法提供一个打印前和打印后的事件onbeforeprint、onafterprint。可以在打印前的时候重新编辑一些格式,专门送去打印,打印后又处理回来。
    function window.onbeforeprint()
    {
    //将一些不需要打印的隐藏
    }
    function window.onafterprint()
    {
    //放开隐藏的元素
    }

  • 相关阅读:
    Android--多线程之Handler
    webkit-transition-
    结构体直接赋值
    shell 俄罗斯方块 杂记
    debian 开启daytime等服务 "xinetd"
    Linux中 etc/init.d “服务"
    <iOS>关于Xcode上的Other linker flags
    多线程总结
    git的使用与分支管理
    -ios项目中安装和使用CocoaPods
  • 原文地址:https://www.cnblogs.com/chenxizhang/p/1491492.html
Copyright © 2011-2022 走看看