Peter Flachmann: window.print() automatisch starten ?

Hallo,

ich habe ein Seite als Printversion erstellt nun würde ich gerne ein link auf die Printversion machen und zugleich soll der Printvorgang noch gestartet werden aber ich weiß nicht wie ich es machen soll?

Hat jemand eine Idee?

Das ist die Knopf Variante oder ist ActivX besser?

<a href="javascript:window.print()">print</print>

Gruß Peter

  1. Hi,

    ich habe ein Seite als Printversion erstellt nun würde ich gerne ein link auf die Printversion machen und zugleich soll der Printvorgang noch gestartet werden aber ich weiß nicht wie ich es machen soll?

    Wie fändest Du es, wenn Du auf eine Webseite kämst und sofort würden Hunderte Seiten gedruckt?

    Aus genau diesem Grund DARF das nicht funktionieren.

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
    1. Hallo Andreas!

      Wie fändest Du es, wenn Du auf eine Webseite kämst und sofort würden Hunderte Seiten gedruckt?

      Hmm... ich das nicht so, dass die Dialogbox "Drucken" aufpoppt? Da kann der User immer noch mit "Abbrechen" eben abbrechen...

      Für die neue Version meiner Seiten biete ich auch eine Druckversion (siehe Diskussion mit Struppi, etwa 17.11.), und wenn der User eben diese aufruft, poppt mittels setTimeout(print, 50) fast sofort die Dialogbox (IE 6, Opera 6-7, Mozilla 1.etwas). Ob er dann druckt oder nicht, bleibt ihm dann überlassen. Der User wird allerdings im Begleittext bei dem Link vorher darüber informiert, dass es so ist (JS vorausgesetzt, natürlich).

      Für Peter: im Header der Datei (der Druckversion) habe ich die Anweisung:

      setTimeout(print, 50);

      Viele Grüße aus Frankfurt/Main,
      Patrick

      1. Hallo Patrick,

        Für Peter: im Header der Datei (der Druckversion) habe ich die Anweisung:
        setTimeout(print, 50);

        was ist "print" ?
        jedenfalls keine selbst definierte function und auch nicht die in javascript wenthaltene funktion window.print()
        richit wäre:
        onload="setTimeout('window.print()', 50);"

        freundl. grüsse aus berlin, Raik

        1. Hallo

          was ist "print" ?

          Sicher, window.print() ist korrekt. print() geht aber auch. Und Anführungszeichen und Klammer habe ich bisher "gespart", wenn die Funktion im setTimeout keine Parameter erwartet.

          function sagbescheid() {
          alert('BESCHEID!');
          }

          setTimeout(sagbescheid, 1000);

          Ob das jetzt puristisches JS ist oder nicht, ist mir ehrlich gesagt.. du weißt schon :)

          Viele Grüße aus Frankfurt/Main,
          Patrick

          1. Hallo Patrick,

            Ob das jetzt puristisches JS ist oder nicht, ist mir ehrlich gesagt.. du weißt schon :)

            erste frage wäre, ob das jeder browser so "frisst". da bin ich schon nicht sicher.
            und 2te frage ist, das die leute hier im forum etwas lernen sollen. und dazu muss man halt den korrekten code posten, damit sie durch vergleichen mit selfhtml die "energie des verstehens" aufnehmen können. ;-)
            sonst gibt es später wieder nachfragen, weil solche vereinfachungen nicht immer funktionieren und man es halt hier so gelernt hat.

            freundl. grüsse aus berlin, Raik

            1. Hallo Raik!

              erste frage wäre, ob das jeder browser so "frisst". da bin ich schon nicht sicher.

              mit den in meiner ersten Antwort an MudGard erwähnten Browsern + Netscape 4.75 gibt es keine Probleme. Was Älteres habe ich leider nicht zum Testen...

              und dazu muss man halt den korrekten code posten,

              Ob das unkorrekter Code ist kann ich nicht sagen, kein Browser jedenfalls meckert (Konsolen schön leer)... Ansonsten gebe ich Dir recht, ich werde mir beim Code-Zitieren mühe geben :)

              Viele Grüße aus Frankfurt/Main,
              Patrick

        2. onload="setTimeout('window.print()', 50);"

          Danke!

          Also der Druck wird auch nur da gestartet wo ein Knopf ist wodrauf steht Anfahrts-Skizze drucken.

          Mann sollte ja wohl davon ausgehen der der User weiß was er da tut ;-) Sonst würde ich das auch nicht einbauen es ist wie gesagt nur eine kleine Hilfe.

          Der Wert 50 steht der für 50 Millisekunden?

          Gruß Peter

          1. Hallo Peter,

            Der Wert 50 steht der für 50 Millisekunden?

            jo, ich denke...
            ist auch nur im ie nötig, weil der sonst nen fehler meldet.

            freundl. grüsse aus berlin, Raik

      2. Hi,

        Wie fändest Du es, wenn Du auf eine Webseite kämst und sofort würden Hunderte Seiten gedruckt?
        Hmm... ich das nicht so, dass die Dialogbox "Drucken" aufpoppt?

        Eben, weil der von Peter gewünschte automatische Start des Printvorgangs ("zugleich soll der Printvorgang noch gestartet werden") nicht geschehen darf.

        cu,
        Andreas

        --
        Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
        http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
    2. Hallo,

      Aus genau diesem Grund DARF das nicht funktionieren.

      nicht ganz. du kannst mit onload="window.print()" den druckdialog starten, aber den druckbefehl muss der user erst noch bestätigen. schliesslich kann es sein, das er 1 tintenpisser hat und einen plotter mit teuren folien drin und vielleicht noch einen speziellen fotodrucker mit sehr teurem papier drin.
      dann soll er ja erst auswählen können, auf welchem drucker er deine seite ausgeben will.

      freundl. grüsse aus berlin, Raik