nach seite öffnen drucken

luchs3

Erfahrenes Mitglied
Hi,

Ich würde gene über Javascript eine Seite öffnen, diese drucken und wieder schließen.

Das mit dem öffnen, drucken und schließen habe ich schon hinbekommen, aber er druckt mir immer eine leere Seite (firefox 3) und als Adresse nimmt er about:blank.
Wenn ich die Seite aber nicht schließen lasse, und sie manuell drucke, funktioniert es.

Code:
<script language="JavaScript" type="text/javascript">
<!-- 
function header_print() {

   mywin=window.open("?id=1&id2=5"); 
   mywin.focus(); 
   mywin.print();
     
} 
//--> 
</script>

Wäre über eure Hilfe echt happy.
Niko
 
Moin,

ich nehme mal an, das geht alles etwas zu schnell, ...dass dort schon gedruckt werden soll, bevor die Seite geladen ist, oder dass sie schon wieder geschlossen ist.

Versuche mal die print+close-Methoden in der Seite im Popup beim onload aufzurufen.
Damit du dort auch sicher bist, dass wirklich gedruckt werden soll, kannst du ja einen Parameter in der URL mitsenden, an dem man es erkennt.

Ansonsten:
Falls du dieses Popup nur öffnest, um das Dokument zum Drucken zu Laden, dieses Dokument aber garnicht zeigen willst, könntest du auch mit einem versteckten iFrame Arbeiten, ...Menschen werden etwas nervös wenn kurz Sachen aufploppen und dann wieder verschwinden...bei einem iFrame besteht dieses Problem nicht:)

Die Vorgehensweise wäre die selbe wie beim Popup(das mit dem focus kannst du da weglassen), du müsstest nur als 2. Parameter bei open() den Namen des iFrames angeben.
 
Nur ein kleiner Einwand von mir, muss ja nicht beachtet werden:

Wieso dem Benutzer nicht die Möglichkeit geben, sich nochmal das anzukucken was ausgedruckt werden soll? Vielleicht hat er sich verklickt und bekommt dann was ausgedruckt was er garnicht haben wollte.

Wie gesagt, das kann auch ignoriert werden, wenn du gute Gründe für dein Vorhaben hast :)
 
@sven

Ich glaube auch, dass er zu schnell lädt.
Ich bin aber leider nicht sehr fit in js und alle meine Versuche ein in ein div tag eingefügtes onload zu verwenden wurden ignorriert.

Ich will nicht im body tag schreiben, da sonst das Programm etwas unübersichtlich wird (beginnt mit solchen kleinigkeiten).

Wie setzte ich das Codemäßig um:
Seite laden->über onload in div- tag drucken->schließen

@lomes

Wird so ein kleines CRM.
soll einen ganzen Haufen Briefköpfe ausdrucken und der Button, der dorthin führt heisst auch so.
 
Zuletzt bearbeitet:
Naja....ein DIV hat kein onload-Event, deswegen wird es dort ignoriert.

Du kannst dies nehmen:
Code:
<script type="text/javascript">
<!--
window.onload=function(){window.print();window.close();}
//-->
</script>

Und es dort ins Popup tun, wo es der Übersichtlichkeit am wenigsten schadet.

Ich hab es mal kurz getestet, es scheint kein Problem zu sein, wenn das Fenster bereits wieder geschlossen ist, bevor der Drucker losrackert...er hat vorher bereits alle nötigen Infos erhalten :)
 

Neue Beiträge

Zurück