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

Używam tego skryptu do drukowania strony internetowej. Moje widoki sprawiają, że ta strona i JS dbają o wszystkie inne rzeczy.Drukowanie strony internetowej przy użyciu tylko adresu URL i bez otwierania nowego okna?

Ale nie chcę otwierać nowego okna. A więc, co powinienem użyć zamiast window.open(URL), aby otworzyć no new window. Podobnie, nie chcę otwierać nowego okna dla print function. Tak, Ilekroć renderuję tę stronę, robię wszystkie rzeczy na tej samej stronie. Brak nowego okna, Brak nowej karty. Jak mogę to osiągnąć. Mam google, ale nic nie działa.

Odpowiedz

36

Można to zrobić za pomocą ukrytej iFrame (używam jQuery dla przykładu):

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 

} 

ta załaduje stronę, którą chcesz wydrukować. Do druku, można dodać kod javascript na stronie wydruku tak, że pobiera drukowane po załadowaniu:

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

To będzie wydrukować stronę bez pokazywania nowego okna. Testowałem to w IE8,9 i Google Chrome, więc nie jestem pewien, czy to działa w Safari czy Firefoxie.

+0

dzięki! działa świetnie! –

+0

W "/ url/to/page/to/print", czy mogę umieścić mój kod html bezpośrednio? –

+1

@VitorGuerreiro: Tak, kod HTML tego, co chcesz wydrukować, powinien znajdować się pod tym adresem URL; ten kod HTML powinien również zawierać kod javascript wymieniony w odpowiedzi (ten z 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(); 
    } 

wywołać tę funkcję javascript w przycisk Print kliknięcia. „Main” jest id div, które mamy do wydrukowania bez otwierania na nowe window.I chcesz powiadomić, że będzie to wydrukować bieżącą stronę div. Spróbuj i zapisz w przypadku jakiegokolwiek problemu.
Dzięki,
Gourav

+0

robi praca ze mną. –

Powiązane problemy