Hallo,
Stelle einfach fest, welches Stylesheet aktiv ist - z.B. via currentStyle() (IE) bzw. getComputedStyle() (Rest der Welt). Und wenn ein zu testendes Element den Stil aus dem print hat, dann führe das JS nicht weiter aus.
Das setzt voraus, dass das Dokument zum Drucken noch einmal (ohne es auf dem Bildschirm darzustellen) neu geladen wird und dabei alle Scripte erneut ausgeführt werden. Das ist aber doch nicht der Fall. Demnach würde ein JavaScript nie feststellen können, dass das print-Stylesheet angewendet wird, weil immer, wenn es ausgeführt wird, eine screen-Darstellung zugrunde liegt.
Ich denke doch, es läuft so ab:
1. Anwender surft das Dokument an
2. das screen-Stylesheet wird angewendet, die Scripte werden ausgeführt und darüber gewisse Inline-Styles gesetzt, das Dokument wird auf dem Bildschirm gerendert
3. Anwender druckt das Dokument
4. das print-Stylesheet wird angewendet, das Druck-Layout wird im Speicher gerendert und ggf. in der Druckvorschau gezeigt
Gut, wo sollte da irgendein Script ein aktives print-Stylesheet erkennen können?
Oder sitze ich da einem Denkfehler auf?
Mathias