JavaScript实现局部打印

来源:互联网 发布:caffe 语义分割 编辑:程序博客网 时间:2024/05/21 05:41

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(240, 240, 240);">   1、</span><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">在页面中 默认调用window.print() 方法可以打印当前页面,但是默认是完整的页面,但是如果需要打印局部页面 ,可以使用如下代码(只是JavaScript代码,不用JQuery)   </span>
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"></span><pre name="code" class="javascript"><script type="text/javascript">    //表单打印    $('#FormPrint').click(function () {        var oper=1;        if (oper < 10) {            bdhtml = window.document.body.innerHTML;//获取当前页的html代码              sprnstr = "<!--startprint" + oper + "-->";//设置打印开始区域              eprnstr = "<!--endprint" + oper + "-->";//设置打印结束区域              prnhtml = bdhtml.substring(bdhtml.indexOf(sprnstr) + 18); //从开始代码向后取html              prnhtml = prnhtml.substring(0, prnhtml.indexOf(eprnstr));//从结束代码向前取html              window.document.body.innerHTML = prnhtml;            window.print();            window.document.body.innerHTML = bdhtml;        } else {            window.print();        }     });</script>

FormPrint :打印按钮

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> <!--startprint1--> 要打印的内容 <!--endprint1-->   oper:开始结束标记中的序号</span>
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"></span>
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">第二种方法:JQuery :</span>
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"></span><pre name="code" class="javascript">(function ($) {    var printAreaCount = 0;    $.fn.printArea = function () {        var ele = $(this);        var idPrefix = "printArea_";        removePrintArea(idPrefix + printAreaCount);        printAreaCount++;        var iframeId = idPrefix + printAreaCount;        var iframeStyle = 'position:absolute;width:0px;height:0px;left:-500px;top:-500px;';        iframe = document.createElement('IFRAME');        $(iframe).attr({            style: iframeStyle,            id: iframeId        });        document.body.appendChild(iframe);        var doc = iframe.contentWindow.document;        $(document).find("link").filter(function () {            return $(this).attr("rel").toLowerCase() == "stylesheet";        }).each(                function () {                    doc.write('<link type="text/css" rel="stylesheet" href="'                            + $(this).attr("href") + '" >');                });        doc.write('<div class="' + $(ele).attr("class") + '">' + $(ele).html()                + '</div>');        doc.close();        var frameWindow = iframe.contentWindow;        frameWindow.close();        frameWindow.focus();        frameWindow.print();    }    var removePrintArea = function (id) {        $("iframe#" + id).remove();    };})(jQuery);

引入这个文件,然后把 要打印的内容包裹在<div>中, 调用Printarea()方法

0 0
原创粉丝点击