Estoy usando el código de this para imprimir una página separada directamente desde un botón de impresión. El usuario hace clic en el botón de impresión y se envía una url a la función de impresión. La función de impresión carga la página separada en un iframe display:none
e imprime ese iframe onLoad
. Funciona en IE, Chrome pero no en Firefox. En firefox carga la página en el div pero nunca imprime o abre el diálogo de impresión. Resulta que Firefox no se imprimirá un iframe si se establece a display:none
de la siguiente manera:Firefox no imprimirá iframe con la pantalla: none
<div id="printerDiv" style="display:none"></div>
¿Este comportamiento esperado? Todos los demás navegadores imprimen, estoy pensando en publicar en Bugzilla. Probé algunos "trucos" de CSS para hacer que el div no se muestre donde el usuario puede verlo, pero siempre está visible de alguna manera. Actualmente estoy usando el siguiente CSS para hacer el iframe invisible:
#printerDiv iframe{
width:1px !important;
height:1px !important;
border:0 !important;
margin:0 !important;
}
pero sigue existiendo márgenes y dejar un espacio 14px una vez que se genera el marco flotante. ¿Hay alguna forma de hacer que el iframe no sea visible en total sin el atributo display:none
? Mejor aún, ¿hay alguna forma de hacer esto sin un truco como ese?
Incluso intenté usar CSS para establecer el iframe en display:block
@print tipos de medios y display:none
para la pantalla, la función JS aún no se imprimirá.
Puede ser porque la URL está en un dominio diferente. –
No es, de hecho, estoy pasando un enlace relativo. Probé un enlace absoluto, pero tiene el mismo problema. –
Simplemente coloque el iframe fuera de la página. – GAgnew