2011-11-23 9 views
22
<html> 
<head> 
<script type="text/javascript"> 
    var URL = "http://localhost:8000/foobar/"; 
    var W = window.open(URL); **Note1** 
    W.window.print(); 

</script> 
</head> 
<p> Print ME...............</p> 
</html> 

Estoy usando este script para imprimir una página web. Mis vistas muestran esta página y The JS se encarga de todas las demás cosas.¿Imprime una página web solo con url y sin abrir una nueva ventana?

Pero no quiero abrir una nueva ventana para eso. Entonces, ¿qué debo usar en lugar de window.open(URL) para abrir no new window? Del mismo modo, no quiero abrir una nueva ventana para print function. Por lo tanto, cada vez que renderizo esta página, hago todo en la misma página. Sin nueva ventana, Sin nueva pestaña. Cómo puedo conseguir esto. Yo google pero nada parece funcionar.

Respuesta

36

Usted puede hacer esto mediante un iFrame oculto (estoy usando jQuery para el ejemplo):

function loadOtherPage() { 

    $("<iframe>")        // create a new iframe element 
     .hide()        // make it invisible 
     .attr("src", "/url/to/page/to/print") // point the iframe to the page you want to print 
     .appendTo("body");     // add iframe to the DOM to cause it to load the page 

} 

Esto cargará la página que desea imprimir. Para imprimir, se puede añadir código JavaScript a la página de impresión para que se imprime después de la carga:

$(document).ready(function() { 
    window.print(); 
}); 

Esto imprimirá la página sin mostrar una nueva ventana. He probado esto en IE8,9 y Google Chrome, así que no estoy seguro de si esto funciona para Safari o Firefox.

+0

gracias! ¡funciona perfectamente! –

+0

En "/ url/to/page/to/print", ¿puedo poner mi código html directamente? –

+1

@VitorGuerreiro: Sí, el código html de lo que desea imprimir debe estar en esa url; ese código html también debería tener el código javascript mencionado en la respuesta (el que tiene window.print();) – andragon

-2
function CallPrint() { 
     var prtContent = document.getElementById('main'); 
     var WinPrint = window.open('', '', 'width=800,height=650,scrollbars=1,menuBar=1'); 
     var str = prtContent.innerHTML; 
     WinPrint.document.write(str); 
     WinPrint.document.close(); 
     WinPrint.focus(); 
    } 

llamar a esta función javascript botón Imprimir clic. "Principal" es el id del div que hemos de imprimir sin necesidad de abrir en nuevos window.I desea notificar que esto va a imprimir la página actual div. Prueba y rever en caso de cualquier problema.
Gracias,
Gourav

+0

conmigo. –

Cuestiones relacionadas