2009-02-11 7 views
8

Ich versuche, Stil bei Druckzeit zu ändern:Javascript Event-Handler für Print

Gibt es ein Ereignis in Javascript, die Sie für hören, wenn die Datei >> Druck genannt wird? Was ist es? Außerdem - gibt es einen Handler für den Druckvorgang? Was ist es?

oder wenn es einen besseren Weg gibt, dies mit anderen Mitteln zu tun, wie zum Beispiel Stylesheets, wie macht man das?

Antwort

7

Verschiedene Style Sheets

Sie können ein anderes Stylesheet für den Druck angeben.

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

One Style Sheet

Wie kodecraft erwähnt, können Sie die Stile in die gleiche Datei setzen auch die @media Block unter Verwendung.

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

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

IE hat OnBeforePrint und Onafterprint

3

In IE gibt es die Nicht-Standard-window.onBeforePrint() und window.onAfterPrint() Ereignis-Listener. Es gibt jedoch keinen anderen Weg, das zu tun, als ich weiß.

Welche Art von Änderungen möchten Sie vornehmen? Es ist möglich, dass Ihr Problem gelöst werden könnte, indem Sie verschiedene Regeln für Ihr Druck-Stylesheet festlegen.

+0

Zum Drucken es vielleicht schön um zusätzlichen Inhalt zum DOM hinzuzufügen. Dies könnte alles mit print.css geschehen, indem andere Elemente standardmäßig ausgeblendet und aktiviert werden. Ich würde jedoch den Javascript-Ansatz bevorzugen. Kennen Sie eine Lösung für andere Browser? – Hendrik

2

Wir fanden auch, dass Sie einen Ausdruck nur Stil mit der folgenden Aktionen durchführen:

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

Firefox 6 unterstützt jetzt Before und afterprint

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

+1

Sie können dies in Chrome 9 + und Safari 5.1 + simulieren mit der MatchMedia API https://developer.mozilla.org/de/DOM/window.matchMedia –

+0

Roger, möchten Sie diese Lösung näher erläutern? Speziell simuliert in Chrom/Safari. Danke – dovidweisz

+0

@wapsee jsfiddle.net/W4As4 –