jquery.PrintArea.min.js
1.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
(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() {
// 这里是在将网页中的所有css引入,即打印区域的css如果是link进来的,可以设置在网页的任何位置
doc.write('<link type="text/css" rel="stylesheet" href="' + $(this).attr("href") + '" >');
});
doc.write($(ele).prop('outerHTML')); // 将待打印元素原封不动的引入
doc.close();
var frameWindow = iframe.contentWindow;
frameWindow.close();
frameWindow.focus();
// 必须等待frame加载完成后再打印,否则可能在某些浏览器中打印不出东西。
frameWindow.onload = function() {
frameWindow.print();
};
}
var removePrintArea = function(id) {
$("iframe#" + id).remove();
};
})(jQuery);