2012-06-18 69 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" />