以下是 jQuery打印插件jqprint js代码 的示例演示效果:
部分效果截图:
HTML代码(index.html):
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>jQuery打印插件jqprint</title>
<script language="javascript" src="jquery-1.4.4.min.js"></script>
<script language="javascript" src="jquery.jqprint-0.3.js"></script>
<script language="javascript">
function a(){
$("#ddd").jqprint();
}
</script>
</head>
<body>
<div id="ddd">
<table>
<tr>
<td>test</td>
<td>test</td>
<td>test</td>
<td>test</td>
<td>test</td>
</tr>
<tr>
<td>test</td>
<td>test</td>
<td>test</td>
<td>test</td>
<td>test</td>
</tr>
<tr>
<td>test</td>
<td>test</td>
<td>test</td>
<td>test</td>
<td>test</td>
</tr>
<tr>
<td>test</td>
<td>test</td>
<td>test</td>
<td>test</td>
<td>test</td>
</tr>
<tr>
<td>test</td>
<td>test</td>
<td>test</td>
<td>test</td>
<td>test</td>
</tr>
</table>
</div>
<input type="button" onclick="a()" value="打印"/>
</body>
</html>
JS代码(jquery.jqprint-0.3.js):
// -----------------------------------------------------------------------// Eros Fratini - eros@recoding.it// jqprint 0.3//// - 19/06/2009 - some new implementations,added Opera support// - 11/05/2009 - first sketch//// Printing plug-in for jQuery,evolution of jPrintArea:http://plugins.jquery.com/project/jPrintArea// requires jQuery 1.3.x//// Licensed under the MIT license:http://www.opensource.org/licenses/mit-license.php//------------------------------------------------------------------------(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}
;
// Thanks to 9__,found at http://users.livejournal.com/9__/380664.html jQuery.fn.outer = function(){
return $($('<div></div>').html(this.clone())).html();
}
}
)(jQuery);