2016-03-30 8 views
0

Beim Anzeigen der Druckvorschau in IE11 mit aktivierter Kompatibilitätsansicht und Quirks-Modus werden einige Eingabeelemente nicht gefüllt, obwohl auf der Seite Werte festgelegt sind.Fehlende Werte in Eingabeelementen beim Drucken im Internet Explorer

Das Problem tritt nur auf, wenn das zu druckende Dokument eine Seite überschreitet. Wenn Sie den Vorschauzoom so anpassen, dass der Inhalt auf eine Seite passt, werden die Eingabefelder ausgefüllt. Wenn der Kompatibilitätsmodus deaktiviert ist, wird das Problem ebenfalls nicht bestehen.

Hat jemand eine Idee, wie Sie dieses Problem beheben können?

Antwort

0

Dieses Problem trat auch im IE11-Kompatibilitätsmodus auf.
Dies ist, wie wir das Problem lösen:

  • Wir finden, dass, wenn wir position:absolute mit left oder top in @media print Abschnitt von CSS gesetzt, dieses Problem
  • Das Update auftreten wird, ist die window.onbeforeprint und window.onafterprint in außer Kraft setzen IE11
  • Alle anderen Elemente werden auf display:none während window.onbeforeprint
  • Die Elemente zu display:block währendgesetzt
+0

Danke für Ihre Antwort! Wir haben das Problem behoben, indem wir einen PDF-Export für unseren Kunden erstellt haben. Daher kann ich Ihre Lösung nicht bestätigen. – logineimer

0

Die obige Antwort hat absolut nichts für mich.

Ich "behoben" das Problem mit dem folgenden Code-Schnipsel.

window.onbeforeprint = function() { 
    if (document.documentMode == '5') { 
     $('input[type=text]').each(function (i, v) { 
      var input = $(v); 
      var replacer = $(document.createElement('div')); 
      replacer.css({ border: '1px solid black', fontSize: '10px', padding: '2px 3px' }); 
      replacer.append(input.val() != '' ? input.val() : ' '); 
      input.before(replacer); 
      input.hide(); 
     }); 
    } 
} 

Was dieser Code tut, ist „ersetzen“ jedes einzelne <input type="text" value="{value}"> in der gedruckten Fenster mit einem <div style="font-size:10px;border:1px solid black;padding:2px 3px">{value}</div>.

Der document.documentMode == '5' kann weggelassen werden, wenn Sie ihn nicht auf den IE5-Kompatibilitätsmodus beschränken möchten.

Das Eingabefeld ist nur versteckt, so dass es immer noch im DOM ist, wenn Sie es brauchen.

Verwandte Themen