Drucken von Iframe in IE 11 druckt nur die erste Seite

Ich habe den folgenden Code, um den Inhalt eines Popup-Fensters zu drucken:

var frame = this._urlElement;
if (frame) {
    var content = frame.contentWindow.document.getElementById("content");
    if (content) {
        MarvalSoftware.UI.Dom.setStyles(content, { 'overflow': 'visible' });
    }
    frame.contentWindow.focus();
    frame.contentWindow.print();
}

wo_urlElement ist ein iframe und sein Inhaltsdokument hatoverflow: auto. Wenn ich in IE11 in PDF drucke, wird nur die erste Seite angezeigt, und der Inhalt wird nicht sauber abgeschnitten. Außerdem sind in der gedruckten PDF-Datei keine Bildlaufleisten sichtbar. Wenn ich die Seitenansicht auch innerhalb des iFrames versuche, wird die gesamte Seite mit dem Umriss des Popup-Fensters angezeigt.

Die Seite, die ich vom Iframe aus drucken möchte, verfügt über eine Masterseite mit einemcontent div mitoverflow: auto. Wenn ich wie folgt drucke, Chrome und IE, wird auf dem Ausdruck eine Bildlaufleiste angezeigt, und der Ausdruck ist nur eine Seite. Daher überschreibe ich diese Überlaufregel im Stylesheet meiner Seite mit einer Medienabfrage zum Drucken auf overflow: visible. Wenn ich dann in Chrome drucke, ist die Bildlaufleiste ausgeblendet und der Ausdruck umfasst zwei Seiten. Im IE ist die Bildlaufleiste ebenfalls verschwunden, aber der Ausdruck wird am Ende der gedruckten Seite 1 kurzerhand abgeschnitten.

Wenn ich meinen Druckcode so ändere, dass ein neuer IFrame erstellt und in das zu druckende Dokument eingefügt wird, kopiere ich die Stylesheets und den Body in den neuen iframe und drucke den neuen iframe aus. Selbst im IE wird das gesamte Dokument gedruckt . Das heißt, der neue iframe ist in keinem Element der Masterseite enthalten. Gibt es also einen anderen Stil auf der Masterseite, nach dem ich suchen kann, der dies verursachen könnte, alsoverflow?

Übrigens tritt dieses Verhalten anscheinend nur dann auf, wenn ich mit dem Windows-eigenen "PDF-Drucker" in PDF drucke.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage