按照同样的思路,因为一些建议,你需要做的,至少以下:
- 加载一些CSS动态地通过JavaScript
- 工艺某些打印特异性CSS规则
- 通过JavaScript
一个例子CSS可以这样简单套用你看中的CSS规则:
@media print {
body * {
display:none;
}
body .printable {
display:block;
}
}
那么你的JavaScript将只需要申请“打印”级到你的目标div,它将是唯一可见的(只要没有其他冲突的CSS规则 - 一个单独的练习),当打印发生。
<script type="text/javascript">
function divPrint() {
// Some logic determines which div should be printed...
// This example uses div3.
$("#div3").addClass("printable");
window.print();
}
</script>
你可能想从可选目标删除类发生打印后,和/或删除动态添加CSS发生打印后。
下面是一个完整的工作示例,唯一的区别是打印CSS不是动态加载的。如果你希望它真的不显眼,那么你将需要load the CSS dynamically like in this answer。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Print Portion Example</title>
<style type="text/css">
@media print {
body * {
display:none;
}
body .printable {
display:block;
}
}
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
</head>
<body>
<h1>Print Section Example</h1>
<div id="div1">Div 1</div>
<div id="div2">Div 2</div>
<div id="div3">Div 3</div>
<div id="div4">Div 4</div>
<div id="div5">Div 5</div>
<div id="div6">Div 6</div>
<p><input id="btnSubmit" type="submit" value="Print" onclick="divPrint();" /></p>
<script type="text/javascript">
function divPrint() {
// Some logic determines which div should be printed...
// This example uses div3.
$("#div3").addClass("printable");
window.print();
}
</script>
</body>
</html>
谢谢。此解决方案正常工作。 – KentZhou 2009-07-13 16:49:50
但是printDivCSS的建议是什么?似乎没有必要使用它。 – KentZhou 2009-07-13 16:52:20