`

jquery print 部分区域打印

阅读更多

 

声明: 本文是我看完 jQuery 插件 jquery.PrintArea.js 后,  基本上默写出来的,  内容大致相同,  只是多加了写注释

 

<!DOCTYPE html>
<html>
<head>
<script src="//code.jquery.com/jquery-1.9.1.min.js"></script>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>

  <div id="div" class="haha">test</div>
  <button onclick="doPrint()">print</button>
</body>
</html>

 

(function($) {
  // 多次调用打印时标识不同ID
  var printCount = 0;
  // 区域打印
  $.fn.printArea = function() {
    // 打印区域的目标元素
    var tarEle = $(this);
    var idPrefix = "printArea_";
    // remove前一个打印区域iframe
    removePrintArea(idPrefix + printCount);
    printCount++;
    var iStyle = "position:absolute;width:0px;height:0px;left:-10px;top:0px;";
    var iId = idPrefix + printCount;
    // 创建一个新 iframe ,并追加到body体最后面
    var iframe = document.createElement("IFRAME");
    $(iframe).attr({
      style: iStyle,
      id: iId
    });
    document.body.appendChild(iframe);
    // 打印区域 iframe 的文档对象
    var iDoc = iframe.contentWindow.document;
    // 遍历当前文档中所有的 link 标签, 将这些 css 样式表写入到打印区域 iframe 文档中
    $(document).find("link")
    .filter(function() {
      return $(this).attr("rel").toLowerCase() == "stylesheet";
    })
    .each(function() {
      iDoc.write("<link type='text/css' rel='stylesheet' href='" + $(this).attr("href") + "' />");
    });
    // 将打印区域目标元素内容和class属性加入到一个新 div 中, 并写入到打印区域 iframe 文档对象中
    iDoc.write("<div class='" + $(tarEle).attr("class") + "'>" + $(tarEle).html() + "</div>");
    iDoc.close();
    
    // 用打印区域 iframe 子窗口对象调用print()执行打印
    var iframeWindow = iframe.contentWindow;
    iframeWindow.close();
    iframeWindow.focus();
    iframeWindow.print();
  };
  var removePrintArea = function(id) {
    $("iframe#" + id).remove();
  };
})(jQuery);

function doPrint() {
  $("#div").printArea()
}

 

分享到:
评论

相关推荐

    jquery-easyui-打印

    实现javascript打印功能,打印整个页面就很简单,但如果指定打印某一个区域就有点难点,这里有一个jQuery插件PrintArea可实现打印页面某区域功能。 使用说明 需要使用jQuery库文件和PrintArea库文件

    jQueryprint是一款简单易容且功能强大的网页内容打印jQuery插件

    jQuery.print是一款简单易容且功能强大的网页内容打印jQuery插件。该网页打印插件可以打印指定区域的网页元素,可以指定跳过不打印某些元素,还可以打印整个页面内容。并且提供了丰富的打印参数设置。

    jQuery控制网页打印指定区域的方法

    使用jQuery控制网页打印指定的区域,可以指定一个div区域的id即可实现打印网页的部分内容,如下代码所示: &lt;html&gt; &lt;head&gt; &lt;title&gt;jquery 打印指定区域内容&lt;/title&gt; [removed][removed] ...

    jQuery实现区域打印功能代码详解

    使用CSS控制打印样式,需要设置样式media=”print”,并且将页面中不需要打印的元素的样式display属性设置为none。...用jQuery打印插件printArea.js $(function(){ $(#print_btn).click(function(){ $(#my_area).pr

    html可设置区域打印功能

    $("#printbtn").click(function(){ $("#printarea").printArea();//#printarea:打印区域ID;#printbtn:按钮ID });

    js前端局部打印

    jqprint是一个基于jQuery编写的页面打印的一个小插件,但是不得不承认这个插件确实很厉害,最近的项目中帮了我的大忙,在Web打印的方面,前端的打印基本是靠window.print()的方式进行打印的,而这个插件在其基础上...

    PrintMe:一个简单的js文件打印库——打印特定区域,同时隐藏其他打印区域

    打印我 参见 GIST: : 这是在 jQuery、vanilla js 等中做的一个简单的事情。

    调用浏览器打印功能.zip

    &lt;script src="js/jquery-1.9.1.min.js"&gt; 这里有一头猪要打一下。 ;"&gt;打印 var ps = document.getElementById('ps'); function preview(id) { var sprnhtml = $('#' + id).html(); //获取区域内容...

    web打印demo

    web端直接调用浏览器打印功能,自适应排版,可删除页眉页脚,可以自定义打印区域

    printPage:用于打印网页中特定区域的插件

    PrintPage 是用于打印网页特定区域的插件。 版本: 1.0 作者: abdulkhaderp (Abdul Khader) 如何使用: 包括 jQuery , [removed] 包括插件, [removed] 打印元素, $("#elementID").printPage(); 可选...

    xheditor-1.1.14

    Print:打印 Fullscreen:切换全屏模式 About:关于xhEditor skin:皮肤风格选择 参数值:default(默认风格),o2007blue(Office 2007 蓝色),o2007silver(Office 2007 银色),vista(Vista),nostyle(NoStyle) ...

Global site tag (gtag.js) - Google Analytics