Eric Stammel: Seite drucken

Hallo,
ich möchte ein Clipart (Druckersymbol) mit „<img src="drucker.gif" alt="Seite drucken">" auf einer Seite einbinden. Wenn man dann auf das Symbol klickt sollte der Inhalt der Seite direkt beim Client ausgedruckt werden.
Was muß ich eintragen ?

Danke

ERIC

  1. Hallo Eric,

    ich möchte ein Clipart (Druckersymbol) mit „<img src="drucker.gif" alt="Seite drucken">" auf einer Seite einbinden. Wenn man dann auf das Symbol klickt sollte der Inhalt der Seite direkt beim Client ausgedruckt werden.

    da wo die Grafik hin soll:
    <a href="javascript:Drucken()"><img src="drucker.gif" alt="Seite drucken" border=0></a>

    Und im Dateikopf, zwischen <head> und </head>, das Folgende:

    <script language="JavaScript">
    function Drucken()
    {
    if(document.layers) /* Abfrage auf Netscape 4 */
       self.print();
    if(document.all) /* Abfrage auf MSIE 4 */
    {
      self.focus();
      var OLECMDID_PRINT = 6;
      var OLECMDEXECOPT_DONTPROMPTUSER = 2;
      var OLECMDEXECOPT_PROMPTUSER = 1;
      var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
      document.body.insertAdjacentHTML('beforeEnd',WebBrowser);
      WebBrowser1.ExecWB(OLECMDID_PRINT,OLECMDEXECOPT_DONTPROMPTUSER);
      WebBrowser1.outerHTML = '';
    }
    }
    </script>

    viele Gruesse
      Stefan Muenz

    1. var OLECMDID_PRINT = 6;
      var OLECMDEXECOPT_DONTPROMPTUSER = 2;
      var OLECMDEXECOPT_PROMPTUSER = 1;
      var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
      document.body.insertAdjacentHTML('beforeEnd',WebBrowser);
      WebBrowser1.ExecWB(OLECMDID_PRINT,OLECMDEXECOPT_DONTPROMPTUSER);
      WebBrowser1.outerHTML = '';

      Kann ersetzt werden durch window.print();

      Gruss Frank

      1. Hi Frank,

        Kann ersetzt werden durch window.print();

        funktioniert dann allerdings nicht im IE4.

        Gruß,
        UlfL

        1. Hi Frank,

          Kann ersetzt werden durch window.print();

          funktioniert dann allerdings nicht im IE4.

          Gruß,
          UlfL

          Das stimmt, funzt zur Zeit "ausschließlich im IE5.0"

          GAA Thorhall

    2. Hallo!

      Das Script funktioniert ganz hervorragend, es gibt bei mir jedoch ein Problem mit dem IE5.

      Wenn ich auf den Drucken-Button gehe, wird die Seite nicht wie im IE4 direkt ausgedruckt, sondern man bekommt das Windows-Druck-Menue. Bestätige ich dieses und wähle dort die Drucken-Fkt. klappt das ganze so wie gewünscht. Gehe ich allerdings auf "Abbrechen" erscheint eine Fehlermeldung, die sich auf die vorletzte Zeile des Active-X-Befehls bezieht und das obwohl ich vorher die Abfrage auf den Browser wie folgt erweitert habe:

      <script language="JavaScript">
      function Drucken()
      {
      if(document.layers (navigator.appVersion.substring(0,1) > "4")) /* Abfrage auf Netscape 4 oder Version > 4 */
         self.print();
      if(document.all && (navigator.appVersion.substring(0,1) < "5")) /* Abfrage auf MSIE 4 */
      {
        self.focus();
        var OLECMDID_PRINT = 6;
        var OLECMDEXECOPT_DONTPROMPTUSER = 2;
        var OLECMDEXECOPT_PROMPTUSER = 1;
        var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
        document.body.insertAdjacentHTML('beforeEnd',WebBrowser);
        WebBrowser1.ExecWB(OLECMDID_PRINT,OLECMDEXECOPT_DONTPROMPTUSER);
        WebBrowser1.outerHTML = ''
      }
      }
      </script>

      Eigentlich dürfte der IE5 die Befehle nach der zweiten if-Anweisung gar nicht mehr ausführen.

      Kann jemand meine Beobachtung bestätigen und kann vielleicht einen Denkanstoss liefern, wie man das Script ändern müßte damit es auch mit dem IE5 ganz ohne Fehler läuft?

      Gruß
      Mirko

      1. Hallo Mirko

        <script language="JavaScript">
        function Drucken()
        {
        if(document.layers (navigator.appVersion.substring(0,1) > "4")) /* Abfrage auf Netscape 4 oder Version > 4 */
           self.print();
        if(document.all && (navigator.appVersion.substring(0,1) < "5")) /* Abfrage auf MSIE 4 */

        Dein Fehler liegt in der Abfrage, der IE5 meldet sich als IE4. Den IE 5 kannst du z.B. so abfragen
        if (navigator.appVersion.substring(22,23)==5)

        Viele Grüße

        Antje

        1. Hallo Antje!

          Dein Fehler liegt in der Abfrage, der IE5 meldet sich als IE4. Den IE 5 kannst du z.B. so abfragen
          if (navigator.appVersion.substring(22,23)==5)

          Ich hätte vielleicht mal ausprobieren sollen, wie der IE5 sich meldet. War einfach davon ausgegangen, dass die Meldung analog zum 4er ist, nur eben mit 5 am Anfang.

          Vielen Dank für den Hinweis!

          Gruß
          Mirko