J'ai vu beaucoup de forums qui suggèrent la balise Object comme un remplacement pour l'IFrame, qui fonctionne probablement dans la plupart des cas.
Par exemple, j'ai eu un PDF montrant dans une IFrame (parce qu'il y avait d'autres choses dont nous avons besoin à afficher sur la page d'ailleurs que le PDF) et a été en mesure de l'obtenir à l'écran fine à l'aide de l'Objet.
Ce qui a été:
<iframe id="confirmed_pdf" class="current_pdf" src="/prescriptions/show_pdf?id=123" height="570" width="480"></iframe>
Est devenu:
<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>
Mais l'Objet n'était pas un substitut approprié pour remplir l'exigence d'être en mesure d'imprimer UNIQUEMENT les PDF partie de la page.
Une IFrame est comme sa propre fenêtre à l'intérieur de la page (une fenêtre dans une fenêtre, essentiellement), et une fois que vous obtenez la fenêtre de l'objet, vous pouvez l'appeler .print (), comme:
jQuery("#confirmed_pdf").contentWindow.print();
IFrame a un contentWindow bien, c'est ce qui donne l'impression que la partie possible. L'objet n'a pas une contentWindow propriété, donc il n'y a aucun moyen de l'impression, seule la section de la page.
Donc, il semble comme si vous êtes tout simplement à l'aide d'une IFrame pour afficher quelque chose, il y a d'autres balises comme Objet qui peut être utilisé à la place. Mais si vous avez besoin d'interagir avec le contenu de l'IFrame d'une certaine façon, puis IFrame peut être nécessaire.