566 Stimmen

Wie kann ich ein Element beim Drucken einer Webseite ausblenden?

Ich habe auf meiner Webseite einen Link zum Drucken der Webseite. Der Link ist jedoch auch auf dem Ausdruck selbst sichtbar.

Gibt es einen Javascript- oder HTML-Code, der den Link-Button ausblendet, wenn ich auf den Druck-Link klicke?

Beispiel:

 "Good Evening"
 Print (click Here To Print)

Ich möchte dieses Etikett "Drucken" ausblenden, wenn der Text "Guten Abend" gedruckt wird. Das Etikett "Drucken" soll nicht auf dem Ausdruck selbst erscheinen.

13voto

Justin Scott Punkte 867

Sie könnten den Link in einem div platzieren und dann JavaScript für den Anker-Tag verwenden, um das div auszublenden, wenn es angeklickt wird. Beispiel (nicht getestet, muss möglicherweise angepasst werden, aber Sie verstehen die Idee):

<div id="printOption">
    <a href="javascript:void();" 
       onclick="document.getElementById('printOption').style.visibility = 'hidden'; 
       document.print(); 
       return true;">
       Print
    </a>
</div>

Der Nachteil ist, dass die Schaltfläche nach dem Anklicken verschwindet und die Option auf der Seite nicht mehr zur Verfügung steht (es gibt aber immer noch Strg+P).

Die bessere Lösung wäre, ein Druck-Stylesheet zu erstellen und in diesem Stylesheet den verborgenen Status der printOption ID (oder wie immer Sie es nennen). Sie können dies im Head-Abschnitt der HTML-Datei tun und ein zweites Stylesheet mit einem Media-Attribut angeben.

8voto

Mike Rapadas Punkte 4503
@media print {
  .no-print {
    visibility: hidden;
  }
}

<div class="no-print">
  Nope
</div>

<div>
  Yup
</div>

5voto

Am besten ist es, eine "Nur-Druck"-Version der Seite zu erstellen.

Oh, warten Sie... das ist nicht mehr 1999. Verwenden Sie ein Druck-CSS mit "display: none".

1 Stimmen

Druckbare Versionen haben immer noch einen gewissen Wert, weil sie dem Benutzer deutlich zeigen, was er bekommt, wenn er druckt, was mit CSS-Techniken missbraucht werden kann

1 Stimmen

Darüber hinaus können Sie zusätzliche Inhalte wie Linkverweise, Fußzeilen usw. in eine Druckversion aufnehmen. In den kommenden Tagen wird sich vieles davon auch mit CSS realisieren lassen.

9 Stimmen

@annakata: Der Benutzer kann dies bereits mit der Druckvorschau in seinem Browser erreichen. Als Bonus ist das genau das, wofür es gedacht ist.

5voto

webs Punkte 494

Die von Diodus akzeptierte Antwort funktioniert für einige, wenn nicht alle von uns nicht. Ich konnte meine "Print this"-Taste nicht mehr vor dem Ausdrucken auf Papier verstecken.

Die kleine Anpassung von Clint Pachl beim Aufruf der css-Datei durch Hinzufügen von

      media="screen, print" 

und nicht nur

      media="screen"

ist die Lösung dieses Problems. Aus Gründen der Klarheit und weil es nicht leicht zu sehen ist, hat Clint Pachl zusätzliche Hilfe in Kommentaren versteckt. Der Benutzer sollte das ",print" in die css-Datei mit der gewünschten Formatierung einfügen.

     <link rel="stylesheet" href="my_cssfile.css" media="screen, print"type="text/css">

und nicht das Standardmedium = "nur Bildschirm".

    <link rel="stylesheet" href="my_cssfile.css" media="screen" type="text/css">

Ich denke, damit ist dieses Problem für alle gelöst.

5voto

Elias Hasle Punkte 547

Wenn Sie Javascript haben, das in die Stileigenschaft einzelner Elemente eingreift und damit die !important schlage ich vor, die Ereignisse zu behandeln onbeforeprint y onafterprint . https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeprint

1 Stimmen

Danke, das hat mir eine Menge Zeit erspart!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X