Ich habe viele Foren gesehen, die das Object-Tag als Ersatz für IFrame vorschlagen, was wahrscheinlich in den meisten Fällen funktioniert.
Zum Beispiel hatte ich eine PDF-Datei in einem IFrame (weil neben der PDF-Datei noch andere Dinge auf der Seite angezeigt werden mussten) und konnte sie mithilfe von Object gut anzeigen.
Was war:
<iframe id="confirmed_pdf" class="current_pdf" src="/prescriptions/show_pdf?id=123" height="570" width="480"></iframe>
Wurden:
<object id="confirmed_pdf" class="current_pdf" data="/prescriptions/show_pdf?id=123" type="application/pdf" height="570" width="480">
<p>[Show this message if displaying the PDF did not work]</p>
</object>
Object war jedoch kein geeigneter Ersatz, um die Anforderung zu erfüllen, NUR den PDF-Teil der Seite drucken zu können.
Ein IFrame ähnelt einem eigenen Fenster innerhalb der Seite (im Grunde genommen einem Fenster innerhalb eines Fensters). Sobald Sie das Fensterobjekt erhalten haben, können Sie .print () darauf aufrufen, z.
jQuery("#confirmed_pdf").contentWindow.print();
IFrame hat eine contentWindow-Eigenschaft, die das Drucken nur dieses Teils ermöglicht. Das Objekt verfügt nicht über eine contentWindow-Eigenschaft, sodass nicht nur der Abschnitt der Seite gedruckt werden kann.
Wenn Sie also nur IFrame verwenden, um etwas anzuzeigen, gibt es andere Tags wie Object, die stattdessen verwendet werden können. Wenn Sie jedoch auf bestimmte Weise mit dem Inhalt des IFrames interagieren müssen, ist möglicherweise IFrame erforderlich.