jquery利用jqprint实现局部打印(兼容IE8)

2025年03月03日 建站教程

jquery如何利用jqprint插件实现局部打印和全局打印,下面web建站小编给大家详细介绍一下实现方法!

jqprint插件代码

(function($) {
  var opt;
  
  $.fn.jqprint = function (options) {
    opt = $.extend({}, $.fn.jqprint.defaults, options);
  
    var $element = (this instanceof jQuery) ? this : $(this);
    
    if (opt.operaSupport && $.browser.opera) 
    { 
      var tab = window.open("","jqPrint-preview");
      tab.document.open();
  
      var doc = tab.document;
    }
    else 
    {
      var $iframe = $("<iframe  />");
    
      if (!opt.debug) { $iframe.css({ position: "absolute", width: "0px", height: "0px", left: "-600px", top: "-600px" }); }
  
      $iframe.appendTo("body");
      var doc = $iframe[0].contentWindow.document;
    }
    
    if (opt.importCSS)
    {
      if ($("link[media=print]").length > 0) 
      {
        $("link[media=print]").each( function() {
            doc.write("<link type='text/css' rel='stylesheet' href='" + $(this).attr("href") + "' media='print' />");
        });
      }
      else 
      {
        $("link").each( function() {
            doc.write("<link type='text/css' rel='stylesheet' href='" + $(this).attr("href") + "' />");
        });
      }
    }
    
    if (opt.printContainer) { doc.write($element.outer()); }
    else { $element.each( function() { doc.write($(this).html()); }); }
    
    doc.close();
    
    (opt.operaSupport && $.browser.opera ? tab : $iframe[0].contentWindow).focus();
    setTimeout( function() { (opt.operaSupport && $.browser.opera ? tab : $iframe[0].contentWindow).print(); if (tab) { tab.close(); } }, 1000);
  }
  
  $.fn.jqprint.defaults = {
  	debug: false,
  	importCSS: true, 
  	printContainer: true,
  	operaSupport: true
  };
  
  jQuery.fn.outer = function() {
    return $($('<div></div>').html(this.clone())).html();
  } 
})(jQuery);

调用方法:

function print(){
  $("#div").jqprint(); //需要打印的div
}

本文链接:http://so.lmcjl.com/news/24224/

展开阅读全文