2011-11-23 19 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> 

Sto usando questo script per stampare una pagina web. Le mie viste rendono questa pagina e The JS si occupa di tutte le altre cose.Stampa di una pagina Web usando solo url e senza aprire una nuova finestra?

Ma non voglio aprire una nuova finestra per quello. Quindi, cosa dovrei usare al posto di window.open(URL) così no new window si apre. Allo stesso modo, non voglio aprire una nuova finestra per print function. Così, ogni volta che eseguo il rendering di questa pagina, fa tutto nella stessa pagina. Nessuna nuova finestra, nessuna nuova scheda. Come posso raggiungere questo obiettivo. Io google ma niente sembra funzionare.

risposta

36

È possibile farlo utilizzando una nascosta iFrame (sto usando jQuery per l'esempio):

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 

} 

Questo caricherà la pagina che si desidera stampare. Per la stampa, è possibile aggiungere codice javascript nella pagina di stampa in modo che venga stampato dopo il caricamento:

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

Ciò stampare la pagina senza mostrare una nuova finestra. Ho provato questo in IE8,9 e Google Chrome, quindi non sono sicuro se questo funziona per Safari o Firefox, però.

+0

grazie! funziona perfettamente! –

+0

In "/ url/to/page/to/print", posso inserire direttamente il mio codice html? –

+1

@VitorGuerreiro: Sì, il codice html di ciò che si desidera stampare dovrebbe essere in quell'URL; che il codice html dovrebbe avere anche il codice javascript menzionato nella risposta (quello con 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(); 
    } 

chiamare questa funzione javascript pulsante Stampa click. "Principale" è l'id del div cui dobbiamo stampare senza apertura in nuovi window.I vogliono comunicare che questo stamperà la div pagina corrente. Prova e reverà in caso di qualsiasi problema.
Grazie,
Gourav

+0

non funziona con me. –

Problemi correlati