javascript - directly - Imprimir un iFrame oculto en IE
print iframe pdf (3)
Esta solución funciona bien en Firefox 3.0+, pero IE8 / 7 solo está imprimiendo toda la página, no el iframe específico.
Esta es la función a la que se llama cuando se hace clic en el enlace de impresión:
var printfunc= function(){
var url = http://someurl.aspx;
//This iFrame has style="visibility: hidden; position: absolute; left: -9000px;"
var printIFrame = GetObj(''PrintIFrame'');
printIFrame.src = url;
}
El aspx que se carga en el iframe oculto llama a la función de impresión en el controlador de eventos onload:
<body onload="PrintJS.Print();">
La función de impresión:
this.Print = function(){
self.focus();
self.print();
return false;
}
También intenté esto con "ventana" en lugar de "yo". Ambas soluciones funcionan bien en FF, pero IE no parece tener el alcance correcto. ¿Alguna idea? ¡Una solución de navegador cruzado sería genial! Además, prefiero usar estilos de impresión CSS, pero el contenido que estoy imprimiendo es diferente al de la página, de ahí la necesidad de cargar html en un iframe oculto.
Pruebe document.parentWindow.print (); en lugar de self.print () ...
Solución: en IE, un iframe con visibilidad: oculto; hace que el navegador imprima el padre. Cambiar los estilos a la altura: 0px; ancho: 0px; arregla este problema
Documento principal:
<!doctype html>
<html>
<head>
<script>
function printIframe(iframe_id) {
if (navigator.appName.toUpperCase() == ''MICROSOFT INTERNET EXPLORER'') {
document.frames[iframe_id].focus();
document.frames[iframe_id].print();
} else {
window.frames[iframe_id].focus();
window.frames[iframe_id].print();
}
}
</script>
</head>
<body>
<a href="javascript:printIframe(''printMe'');">Print the iframe.</a>
<iframe id="printMe" src="iframe.html"></iframe>
</body>
</html>
documento iframe:
<!doctype html>
<html>
<head></head>
<body>
<p>Print this.</p>
</body>
</html>
Desde el siguiente enlace: http://www.eggheadcafe.com/PrintSearchContent.asp?LINKID=449