8
votes

Imprimer une iframe cachée dans IE

Cette solution fonctionne bien dans Firefox 3.0+, mais IE8 / 7 vient d'imprimer la page entière, pas l'iframe spécifique.

Ceci est la fonction qui est appelée lorsque la liaison d'impression est cliquée: < Pré> xxx

L'ASPX qui est chargé dans l'iframe caché appelle la fonction d'impression sur le gestionnaire d'événements surload: xxx

la fonction d'impression: xxx

J'ai aussi essayé cela avec "fenêtre" au lieu de "soi". Les deux solutions fonctionnent bien dans FF mais c'est-à-dire que cela ne semble pas obtenir le respect de la portée. Des pensées? Une solution de navigateur croiseur serait géniale! De plus, je préférerais utiliser des styles d'impression CSS, mais le contenu que l'impression est différent de celui de la page, d'où la nécessité de charger HTML dans une iframe cachée.


1 commentaires

Est-ce à une imprimante secrète que personne ne sait? (désolé, je n'ai pas pu résister :))


3 Réponses :


0
votes

essayer document.parentwindow.print (); au lieu de soi .Print () ...


0 commentaires

2
votes

Document parent:

<!doctype html>
<html>
    <head></head>
    <body>
        <p>Print this.</p>
    </body>
</html>


2 commentaires

L'entrepoiffage n'est pas tellement 2013


Pouvez-vous inclure les idées principales de la réponse ici? Link Seules les réponses sont découragées.



20
votes

solution: dans IE, un iframe avec visibilité: caché; amène le navigateur à imprimer le parent. Changer les styles en hauteur: 0PX; largeur: 0px; corrige ce problème.


2 commentaires

Et si nous allons utiliser affichage: aucun; au lieu de Visibilité: caché; ? Dans ce cas, nous n'avons pas besoin de définir la hauteur et la largeur.


J'ai le même problème avec Affichage: aucun; Cependant, si je réglais la hauteur et la largeur sur 0, puis bascule l'affichage, faites le .focus () suivi de la .print () puis bascule l'écran à nouveau, cela fonctionne bien.