Samstag, Januar 18, 2020

Wie kann ich den ausblenden-button vor dem Druck und zeigen es, wenn printind Prozess abgeschlossen ist?

Habe ich eine Schaltfläche „drucken“ mit id="print_req". Ich schrieb einige Javascript-code für eine Seite zu drucken, die ausgelöst wird, indem Sie auf diese Schaltfläche, und ich möchte auch ausblenden diese Schaltfläche, bevor Sie drucken, und zeigen Sie es nach der gesamten Druckprozess.ich meine nicht die Schaltfläche „drucken“ in mein Dokument gedruckt. Hier ist mein code:

$(document).ready(function(){
    $("#print_req").click(function(){
        $("#print_req").css("display","none");
        window.print();  
    });

    $("#print_req").css("display","block");
    return false;   
});

Diese richtig zu verstecken, der Knopf, aber wenn der Druckvorgang erledigt werden, die Taste nicht wieder! Was ist das problem?

  • Überdenken Sie Ihre Antwort, da es einen besseren Weg, es zu tun. Mit einem hintergrund-Bild ist nicht eine gute Lösung.

6 Kommentare

  1. 18

    Du gehst in das falsche. Sie sollten nicht ein-und ausblenden der Schaltfläche mit JavaScript oder mit einem hintergrund-Bild, um es zu tun. Sie sollten mit einem Druck-stylesheet, das Ihnen erlaubt, verschiedene Stile auf der Seite, wenn es gedruckt ist. In deinem Fall wäre das display auf none [oder die Sichtbarkeit auf hidden] in diesem stylesheet.

    So fügen Sie eine stylesheet mit den Medientyp für den Druck

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

    In diesem drucken.css, die Sie verstecken sich die Schaltfläche

    .printButtonClass{ display : none }

    Und schwupps, wird die Schaltfläche ausgeblendet, wenn Sie drucken ohne JavaScript.

    • Ihr Recht,aber ich print ein div, dass ist eine Seite, die Schaltfläche existiert!ich meine, jeder Art auf Druck-box wird Einfluss auf die Schaltfläche laden, auf Zeit! zum Beispiel : wenn ich Ihren Vorschlag,Sie verstecken sich die Schaltfläche an der frühen Uhrzeit!
    • und ich möchte auch nicht zu einer so komplexen Aufgabe, dies zu tun einfache Sache.aber danke Kumpel
    • Dies wird nicht verstecken Sie die Taste, bis die Seite gedruckt oder in der seitenansicht. Es nur Effekte, die den Stil der Taste, dass Sie eine Klasse auf. Es hat keinen Einfluss auf die Seite sowieso. Ihre Lösung von der Einstellung der Bild fügt auch mehr Probleme mit der Barrierefreiheit und was ist, wenn der Benutzer die Bilder deaktiviert? Wissen Sie zum drucken mit diesem button? Ich finde die Schaltfläche drucken ist sowieso albern, da es eine integrierte in meinem browser.
    • Nein, beachten Sie die media="print" im obigen Beispiel. Das bedeutet, dass diese Stile nur für die gedruckte version einer Seite, werden diese ignoriert (und der button ist sichtbar), wenn die Seite auf dem Bildschirm
    • oh,Super.. 🙂 ich lernte so viel von Ihren Erklärungen.vielen Dank buddy,es hat mir wirklich geholfen.ja,deine Antwort ist besser als meine,ich werde dein Angebot:)
  2. 3

    Das problem ist, dass Sie nicht wissen, Wann der Druck fertig ist mit javascript. Es gibt kein Ereignis, das ausgelöst wird, benachrichtigt diese.

    Sicherheitsgründen javascript ausgeführt wird, in einer Sandbox-Umgebung innerhalb des Browsers begrenzen seinen Zugriff auf alle system-Ressourcen.

    • also, wie kann ich dies tun, Kumpel?
    • Sie können nicht mit reinem javascript. Es sind ActiveX-Steuerelemente, die ermöglicht die Verwaltung den Druck, aber Sie arbeiten nur auf IE und der Benutzer sollte ausdrücklich annehmen, um Sie zu installieren.
    • oh!! ich fand meine Antwort!!! wenn ich das Bild von diesem button als hintergrund, den <a> html-tag,wird es nicht senden Drucker automatisch! 🙂
    • das ist toll und nützlich, um andere Menschen mit dem gleichen problem. Sie soll erklärt haben, in Ihrer Frage, dass das, was Sie brauchen, ist zum Ausschluss der Schaltfläche drucken wenn die Seite gedruckt wird.
    • ich weiß es und ich habe es getan, Kumpel.falls meine Frage ist Zweideutig, sagen Sie mir bitte 🙂
    • Dies ist eine schlechte Antwort, wenn es gibt ein besserer Weg, es zu tun. Hintergründe wird angezeigt, wenn der Benutzer Sie aktiviert zu drucken in Ihren browser-Einstellungen. Und ActiveX ist schrecklich. 🙂

  3. 3

    Ist es einfach, bitte nur diese, gelten die Klasse noprint auf die Schaltfläche.

     @media print {
       .noprint{
          display: none !important;
       }
    }
    • Diese Antwort ist viel besser als die akzeptierte Antwort, weil es nicht erfordern eine zusätzliche stylesheet.
  4. 0

    Dialogfeld „drucken“ ist Teil des Betriebssystems. Javascript nur Zugriff auf Elemente, die Teil der web-Seite – alles andere wäre eine große Sicherheitslücke.

    • danke,aber wie kann ich das tun?
  5. 0
    function printFunction() {
    
    var restoreoriginalpage = document.body.innerHTML;
    $('#print-button').css('visibility', 'hidden'); //hiding print button before it prints
    var printcontent = document.getElementById("content").innerHTML;
    document.body.innerHTML = printcontent;
    window.print();                    
    document.body.innerHTML = restoreoriginalpage; //restore original page        
    }
  6. 0

    Einfach Tun…

    $(document).bereit(Funktion(){

    $('#print').on('click',function(){
      $('#print').hide();
      window.print();
      $('#print').show();
    
         });
    });

Kostenlose Online-Tests