Druckversion mit print() drucken
pfadfinder36
- javascript
Hallo zusammen,
ich habe für meine (Intranet-)Site zusätzlich eine Druckversion erstellt. Die Druckversion besteht aus eigenständigen Seiten (also nicht über den Austausch von Stylesheets).
Auf jeder Seite steht ein normaler Link, der die entsprechende Seite der Druckversion aufruft.
Nachteil: Die Nutzer müssen im Browser über Datei->Drcuken die Seite ausdrucken.
Ich würde das jetzt gerne so realisieren, dass der Nutzer nach Klick auf den Link "Druckversion" sofort in den Druckdialog kommt.
Wie ich weiss geht sowas mit der Javascript Funktion print().
Meine Frage nun:
Wie kann ich der Funktion mitgeben, dass sie nicht die aktuelle Seite, sondern die Seite der Druckversion aufrufen soll.
Danke
Pfadi
Hello,
Wie kann ich der Funktion mitgeben, dass sie nicht die aktuelle Seite, sondern die Seite der Druckversion aufrufen soll.
meines Wissens gar nicht, aber du kannst die Logik umdrehen. Platziere an das Ende der entsprechenden Druckversion einen Skript-Block:
<script type="text/javascript">
self.print();
</script>
MfG
Rouven
Hi Rouven,
vielen Dank! Funktioniert perfekt.
Gruß Pfadi
<script type="text/javascript">
self.print();
</script>
Hi Pfadi,
Wie kann ich der Funktion mitgeben, dass sie nicht die aktuelle Seite, sondern die Seite der Druckversion aufrufen soll.
Indem Du bei der Druckversion-HTML-Seite im BODY-Tag folgendes einfügst:
<HTML>
<BODY onLoad="meine_druck_funktion()">
...
<SCRIPT>
function meine_druck_funktion() {
print();
}
</SCRIPT>
...
</BODY>
</HTML>
Gruß
Hans
Moin
guter Ansatz, aber
1. was soll die Funktion im body? Die wäre im head allemal besser aufgehoben!
2. du hast den Mime-Type des Scripts vergessen <script type="text/javascript">
Gruß
rfb
Hi !
- was soll die Funktion im body? Die wäre im head allemal besser aufgehoben!
Kann man im <HEAD> onLoad aufrufen?
- du hast den Mime-Type des Scripts vergessen <script type="text/javascript">
Ja, da hast Du recht. Hat aber die letzten Jahre auch ohne den Zusatz funktioniert.
Gruß
Hans
Moin
Kann man im <HEAD> onLoad aufrufen?
du kannst mit onload Funktionen aufrufen wo auch immer sie stehen!
Ja, da hast Du recht. Hat aber die letzten Jahre auch ohne den Zusatz funktioniert.
ist trotzdem falsch
sinnvoller sähe dein Beispiel so aus:
<html>
<head>
<script type="text/javascript">
function meine_druck_funktion() {
window.print();
}
window.onload=meine_druck_funktion;
</script>
<body>
...
</body>
</html>
(auch mit der üblichen und in XHTML zwingend erforderlichen Kleinschreibung)
Gruß
rfb
Javascript Funktion print().
Wie kann ich der Funktion mitgeben, dass sie nicht die aktuelle Seite, sondern die Seite der Druckversion aufrufen soll.
Wenn du ein Print-Stylesheet definierst, erübrigt sich das JavaScript-Gehample. Ferner ist es auch beim direkten Ausdruck über das Browser-Menü ohne dein Script verfügbar.
Roland
Hi,
ich habe für meine (Intranet-)Site zusätzlich eine Druckversion erstellt. Die Druckversion besteht aus eigenständigen Seiten (also nicht über den Austausch von Stylesheets).
auch wenn Du eine mögliche Lösung schon hast: warum sollte für eine Intranet-Seite nicht dasselbe gelten woe für eine öffentliche Seite? Und wieso "Austausch" von CSS?
Mal ein Beispiel: ich habe das Script für einen Terminkalender so modifiziert, dass Unötiges und nicht auszudruckende Einträge die Klasse "noprint" bekommen. Im CSS dann über @media print { .noprint { display:none } } formatiert. Das hat das Extra-Script print.php erübrigt und die Mitarbeiter brauchen lediglich auf ihren wohlbekannten Print-Button im Browser zu klicken.
Du solltest Dir auch im Intranet nicht sicher sein, dass der Administrator auch zukünftig Javascript zuläßt - es sei denn, Du bist das selbst und hast für die Mitarbeiter keinen IE als Standardbrowser eingestellt. ;-)
freundliche Grüße
Ingo