2009-02-11 15 views
8

Próbuję zmienić styl wydruku w czasie:Javascript dla Print

Czy istnieje zdarzenie w javascript, które można słuchać, gdy plik >> print nazywa? Co to jest? Również - czy istnieje komunikat do obsługi po zakończeniu drukowania? Co to jest?

lub czy jest lepszy sposób na zrobienie tego przy użyciu innych środków, takich jak arkusze stylów, jak to zrobić?

Odpowiedz

7

Różne Style Sheets

można określić inny arkusz stylów dla druku.

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

jeden arkusz stylów

Jak kodecraft wspomniano, można również umieścić stylów w tym samym pliku za pomocą bloku @media.

@media print { 
    div.box { 
     width:100px; 
    } 
} 

@media screen { 
    div.box { 
     width:400px; 
    } 
} 
0

IE onbeforeprint i onafterprint

3

IE istnieją niestandardowe window.onBeforePrint() i window.onAfterPrint() nasłuchujące. Nie znam jednak innego sposobu niż IE.

Jakie zmiany chcesz wprowadzić? Możliwe, że problem można rozwiązać, określając różne reguły dla arkusza stylów drukowania.

+0

Do drukowania to może ładny dodać dodatkową treść do DOM. Można to zrobić za pomocą print.css, domyślnie ukrywając inne elementy, włączając je. Wolałbym jednak podejście javascript. Czy znasz rozwiązanie dla innych przeglądarek? – Hendrik

2

Okazało się też, że można zrobić styl drukowania tylko z następujących powodów:

<style type="text/css"> 
@media print { 
    div 
    { 
     overflow:visible; 
    }  
} 
</style> 
3

Firefox 6 obsługuje teraz beforeprint i afterprint

https://developer.mozilla.org/en/Printing#Detecting_print_requests

+1

Możesz symulować to w chrome 9+ i Safari 5.1+ za pomocą api matchMedia https://developer.mozilla.org/en/DOM/window.matchMedia –

+0

Roger, czy chcesz opracować to rozwiązanie? Szczególnie symulując to w chrome/safari. Dziękujemy – dovidweisz

+0

@wapsee jsfiddle.net/W4As4 –