默认的网页打印效果不尽如人意,很多时候只需要打印网页上的一部分内容,这个时候需要jquery jqprint上场

 

 

关键代码如下:

<link href="printStyle.css" rel="stylesheet"type="text/css" media="print">

<script src="jquery.jqprint-0.3.js"></script>

function onprint() {
    $(".main-container").jqprint();
}


高版本jquery加载这个会报错:CANNOT READ PROPERTY ‘opera’ OF UNDEFINED.

原因:
$.browser这个方法从1.9开始废除

加入如下代码(确保位于引入jQuery文件后,$.browser前)

<script>
    jQuery.browser={};
    (function(){
        jQuery.browser.msie=false; 
        jQuery.browser.version=0;
        if(navigator.userAgent.match(/MSIE ([0-9]+)./)){ 
            jQuery.browser.msie=true;
            jQuery.browser.version=RegExp.$1;
        }
    })();    
        
</script>

或者直接修改jquery.jqprint-0.3.js源代码即可


附上本文用到的几个文件


printStyle.css

@page
{
size: auto; /* auto is the initial value */
margin: 0mm 10mm 0mm 10mm; /* this affects the margin in the printer settings 最关键的还是这个,去除页眉页脚*/
}

body
{
background-color:#FFFFFF;
margin: 0mm; /* this affects the margin on the content before sending to printer */
padding: 5mm 0 5mm 0 ;
}


jquery.jqprint-0.3.js

(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);

jQuery.browser={};
	(function(){
		jQuery.browser.msie=false; 
		jQuery.browser.version=0;
		if(navigator.userAgent.match(/MSIE ([0-9]+)./)){ 
			jQuery.browser.msie=true;
			jQuery.browser.version=RegExp.$1;
		}
	})();