2012-06-18 71 views
4

是否可以点击页面上的按钮/图像/链接并包含/排除其他打印元素? (在实际打印机上) 我想让用户选择要打印的元素。这对jQuery的Javascript是否可行?打印到打印机时隐藏/显示div

编辑为更好的理解:我想让用户选择他想要打印的页面哪些部分通过添加打印此/不打印此按钮旁边的每个div,覆盖默认设置我'已经在我的print.css文件中设置了。

更新:理查德尼尔伊拉根的建议后,我试过以下,我觉得我很接近,但不能钉它。有什么建议么?

<style type="text/css"> 
@media print { 
    .no-print { display:none; } 
} 
</style> 

<script> 
$(document).ready(function() { 
    $('.dontPrint').click(function() { $('maybe').addClass('no-print'); }); 
}); 
</script> 

<img class="dontPrint" src="images/cancel.png" title="Dont print bla bla" /></a> 
<div id="maybe">bla bla</div> 
+0

我已经用于打印一个单独的CSS样式表,但可以这样在飞行中做了什么?我的意思是在打印之前选择可打印元素? – bikey77

+0

@Somebodyintrouble:代码是没有必要的我的朋友,它注意到,但它是一个典型的页面与各种divs等... – bikey77

+0

你可以设置一个类'印刷'媒体查询不打印,像@ media print {.no -print {display:none; }},然后使用jQuery将类指定给不想使用jQuery打印出来的东西,如$('div')。addClass('no-print');'。 –

回答

9

是的。您可以通过使用CSS的@media print媒体类型选择器来完成此操作。实施例(打印时隐藏所有输入):

@media print { 
    input { 
     display: none; 
    } 
} 

作为设计图案,可以打印介质选择器与其余样式结合起来以达到肘节效应。

HTML:

<div class="for-screen"> 
    <input type="submit" value="Shown when not printing"> 
</div> 
<div class="for-print"> 
    <p>Shown instead when printing</p> 
</div> 

CSS:

.for-screen {display: block;} 
.for-print {display: none;} 

@media print { 
    .for-screen {display: none;} 
    .for-print {display: block;} 
} 

更多的东西对此事:对CSS2标准

+0

谢谢你,我熟悉@media print等。但是我的问题稍有不同......你可以通过某种类型的切换控件来更改要打印的元素吗? – bikey77

+0

哦对。我为这个答案增加了一个设计模式。 – jsalonen

1

你应该用css来设置它。

媒体=“打印”

尝试是这样的:

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