Hallo,
habe folgenden Code:
Das Prinzip ist einfach - und funktioniert tadellos im Google Chrome. Es gibt einen mehrseitigen "Erstkontaktbogen" welcher die Angewohnheiten etc. von verschiedenen Kindern beschreibt. Die Funktion wird mit steigendem Wert aufgerufen, so dass die Seiten nacheinander geöffnet und gedruckt werden können.
Bei Chrome funktioniert es so: der close() Befehl schliesst den zuvor geöffneten Tab, weiter unten wird ein neuer Tab geöffnet mit der neuen Seite und anschließend der Druckdialog.
Enttäuschung bei Safari: der Befehl close() führt zu einer "Totalschließung", was unter close() steht wird gar nicht mehr ausgeführt und ich finde auch irgendwie nicht die richtige Stelle um das close() so zu plazieren, um ähnliches Verhalten wie weiter oben beschrieben zu bekommen. Wenn ich auf close() verzichte, geht es, aber ich bekomme eben jede Seite in einem neuen Tab.
Opera ist noch lustiger - aus irgendeinem Grund wird der fenster1.print() oder auch einfaches print() ignoriert. self.print() gibt schließlich zumindest einen Druckdialog, aber (!) nicht so wie es sein soll - der self.print() Befehl wird irgendwie aufgerufen bevor das neue Fenster geöffnet wird, was bedeutet dass noch vor der ersten Seite die Seite gedruckt wird, aus welcher die ganze Funktion aufgerufen wird - und die muss nicht gedruckt werden. Die letzte Seite dagegen wird gar nicht mehr gedruckt, weil das Drucken ja stattgefunden hat bevor die Seite geöffnet wurde.
Prinzipiell wäre ich ja gerne bereit hier den Code den jeweiligen Browsern anzupassen, finde aber für Safari und Opera irgendwie nicht die Lösung!
Kann jemand helfen?
habe folgenden Code:
Code:
function f_print_erstkontakt_alle_seiten(seite) { close(); var seiten=new Array(); seiten[1]="erstkontaktbogen.php?druckversion=1&alle_seiten=1"; seiten[2]="betreuende_einrichtungen.php?druckversion=1&alle_seiten=2"; seiten[3]="erstkontakt_behinderung.php?druckversion=1&alle_seiten=3"; seiten[4]="erstkontakt_epilepsie.php?druckversion=1&alle_seiten=4"; seiten[5]="erstkontakt_medikamente.php?druckversion=1&alle_seiten=5"; seiten[6]="erstkontakt_entwicklung.php?druckversion=1&alle_seiten=6"; seiten[7]="erstkontakt_bewegung.php?druckversion=1&alle_seiten=7"; seiten[8]="erstkontakt_spiel.php?druckversion=1&alle_seiten=8"; seiten[9]="erstkontakt_verhalten.php?druckversion=1&alle_seiten=9"; seiten[10]="erstkontakt_essen.php?druckversion=1&alle_seiten=10"; seiten[11]="erstkontakt_schlafen.php?druckversion=1&alle_seiten=11"; seiten[12]="erstkontakt_wuensche_familie.php?druckversion=1&alle_seiten=12"; fenster1=window.open(seiten[seite],"_blank"); fenster1.print(); }
Bei Chrome funktioniert es so: der close() Befehl schliesst den zuvor geöffneten Tab, weiter unten wird ein neuer Tab geöffnet mit der neuen Seite und anschließend der Druckdialog.
Enttäuschung bei Safari: der Befehl close() führt zu einer "Totalschließung", was unter close() steht wird gar nicht mehr ausgeführt und ich finde auch irgendwie nicht die richtige Stelle um das close() so zu plazieren, um ähnliches Verhalten wie weiter oben beschrieben zu bekommen. Wenn ich auf close() verzichte, geht es, aber ich bekomme eben jede Seite in einem neuen Tab.
Opera ist noch lustiger - aus irgendeinem Grund wird der fenster1.print() oder auch einfaches print() ignoriert. self.print() gibt schließlich zumindest einen Druckdialog, aber (!) nicht so wie es sein soll - der self.print() Befehl wird irgendwie aufgerufen bevor das neue Fenster geöffnet wird, was bedeutet dass noch vor der ersten Seite die Seite gedruckt wird, aus welcher die ganze Funktion aufgerufen wird - und die muss nicht gedruckt werden. Die letzte Seite dagegen wird gar nicht mehr gedruckt, weil das Drucken ja stattgefunden hat bevor die Seite geöffnet wurde.
Prinzipiell wäre ich ja gerne bereit hier den Code den jeweiligen Browsern anzupassen, finde aber für Safari und Opera irgendwie nicht die Lösung!
Kann jemand helfen?
Kommentar