Ho visto molti forum che suggeriscono il tag Object in sostituzione di IFrame, che probabilmente funziona nella maggior parte dei casi.
Ad esempio, avevo un PDF visualizzato in un IFrame (perché c'erano altre cose che dovevamo mostrare sulla pagina oltre al solo PDF) ed era in grado di farlo visualizzare bene usando Object.
Cosa c'era:
<iframe id="confirmed_pdf" class="current_pdf" src="/prescriptions/show_pdf?id=123" height="570" width="480"></iframe>
E':
<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>
Ma oggetto non è stato un sostituto adeguato per riempire il requisito di essere in grado di stampare solo la parte in formato PDF della pagina.
un iframe è come una finestra separata all'interno della pagina (una finestra all'interno di una finestra, in fondo), e una volta che si ottiene l'oggetto finestra, è possibile chiamare .print() su di esso, come:
jQuery("#confirmed_pdf").contentWindow.print();
IFrame ha una proprietà contentWindow, è ciò che rende la stampa solo quella parte possibile. L'oggetto non ha una proprietà contentWindow, quindi non c'è modo di stampare solo la sezione della pagina.
Quindi, sembra che se si utilizza solo IFrame per visualizzare qualcosa, ci sono altri tag come Oggetto che possono essere utilizzati al posto. Ma se hai bisogno di interagire con i contenuti dell'IFrame in alcuni modi, allora IFrame potrebbe essere necessario.
Impressionante, spero solo che i browser inizino a supportare i caricamenti di file AJAX, quindi non è necessario utilizzare iframe o flash per questo. – Xeoncross
@Xeoncross Firefox e chrome do: https://developer.mozilla.org/en/Using_files_from_web_applications – chesles