Oliver: window.print() Status erkennen

Hiho,

ich hab ein Problemchen, bei dem ich nicht weiterkomme. Die gängige Literatur sowie die üblichen Online-Quellen habe ich durch, aber trotz allem noch keine gute Idee gehabt (eine Lösung erwarte ich da ja schon gar nicht mehr).

Also, ich habe folgendes Problem gehabt:

Eine Webseite ist so aufgebaut, das sie selbst ein Menü enthält und der Inhalt in einem IFRAME erscheint. Auf der Seite ist ein Button, der es ermöglichen soll, den jeweils im IFRAME angezeigten Inhalt auszudrucken. Da nun weder IFRAME noch DOCUMENT eine print()-Methode hat, habe ich das folgendermaßen gelöst:

--> Klick auf den Print-Button löst diese Funktion aus:
printWin = window.open(pages[currpage] + ".aspx","Druckdokument","width=500 scrollbars=yes menubar=no left=5000");
printWin.print();

pages[currpage] ist der Inhalt des IFRAMES der in ein neues Fenster Druckdokument geladen und dann ausgedruckt wird. Das Fenster selber erscheint wohl auf den meisten Bildschirmen nur in der Taskleiste (left=5000).

Nun die Frage: Kennt jemand einen Weg, festzustellen, wann der Druckvorgang beendet ist? Dann könnte man das Fenster ohne User-Interaktion wieder schließen.

*hoffnungsvollguck*

:) Oliver

  1. Moin!

    Nun die Frage: Kennt jemand einen Weg, festzustellen, wann der Druckvorgang beendet ist? Dann könnte man das Fenster ohne User-Interaktion wieder schließen.

    Das kannst Du sofort nach print(). Der Auftrag wird an das Betriebssystem gegeben und dieses führt ihn auch dann aus, wenn das Popup längst wieder zu ist. Das close() wird übrigens erst ausgeführt, wenn print() soweit durch ist (Das heisst nicht, dass das eigentliche Drucken schon durch ist).

    Also:
    window.print();
    window.close(); // fertig //

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
    1. hmmmm,

      also offensichtlich hast du einen anderen PC als ich...

      Hab' das jetzt mit allen mir zur Verfügung stehenden Browsern auf allen mir zur Verfügung stehenden PCs probiert und es geht definitiv nicht. Der close() kickt den print().

      Wenn ich was dazwischenschiebe, das der das print() nicht gleich starten kann, dann funzt, aber mit

      Also:
      window.print();
      window.close(); // fertig //

      gehts definitiv nicht.

      1. sorry, es muss heissen:

        Wenn ich was dazwischenschiebe, das der das close() nicht gleich starten kann, dann funzt, aber mit