Sven Rautenberg: warum funzt dieses print - Script nicht ?

Beitrag lesen

Moin!

Du hast ein Timingproblem.

function printit(){
var Fenster = window.open("content.htm","Fenster1","width=100, height=100, left=10 ,top=10, location=no,menubar=no, toolbar=no, scrollbars=no, status=no");

Hier wird der Browser zum Laden der Datei aufgefordert. Erwartungsgemäß dauert es immer ein paar Sekunden, bis das abgeschlossen ist - sieht man ja auch, wenn man über normale Links neue Seiten anfordert.

Fenster.focus();

Aber schon eine Millisekunde später kriegt das neue Fenster den Fokus...

Fenster.print();

...und wird ausgedruckt. Wieviele Inhalte sind da wohl bis zu diesem Zeitpunkt schon geladen? Antwort: Mutmaßlich keine. Also kann auch nichts gedruckt werden.

Fenster.close();

Und kaum dass "nichts" gedruckt wird, wird das Fenster auch direkt schon wieder geschlossen.

Du mußt warten, bis der Fensterinhalt komplett geladen ist. Da man das in Sekunden nicht sagen kann, wäre "onload" ein passendes Event, welches innerhalb des zu druckenden Dokuments passend definiert werden sollte.

- Sven Rautenberg

--
"Love your nation - respect the others."