2014-05-17 9 views
6

Poniższy kod pokazuje okno dialogowe drukowania i pomyślnie drukuje stronę, ale jak mogę wydrukować inną stronę po kliknięciu tego samego przycisku? Inna nazwa strony jest: letterprint.phpJak wydrukować inną stronę za pomocą javascript/jQuery/ajax?

<div class="below_movie_left" id="printableArea"> 
My printing contents 
</div> 

<input type="button" class="submit_button" onclick="printDiv('printableArea')" value="Print" style="float:right;" /> 

<script> 
function printDiv(divName) { 
    var printContents = document.getElementById(divName).innerHTML; 
    var originalContents = document.body.innerHTML; 

    document.body.innerHTML = printContents; 

    window.print(); 

    document.body.innerHTML = originalContents; 
} 
</script> 

Czy to możliwe z JavaScript/jQuery metody/Ajax? w jaki sposób ?

+0

@ War10ck Dzięki za edytować moje tytułowe pytanie :) – Babu

+0

Hi !, Możliwa duplikowane tutaj http://stackoverflow.com/questions/8240472/printing-a-web-page-using-just-url-and-without-opening-new-window –

Odpowiedz

16

Jeśli masz już stronę, którą chcesz wydrukować, umieścić tę stronę w ukrytych iframe i wydrukować zawartość iframe

<iframe src="letterprint.php" name="frame"></iframe> 

<input type="button" onclick="frames['frame'].print()" value="printletter"> 
+0

Tak, masz pomysł jest świetny. – Babu

+0

Po prostu świetna prosta odpowiedź. Dzięki, że działa. – Babu

1

Nie można wydrukować innej strony; przeglądarki po prostu nie dają takiej mocy Javascriptowi. Możesz jednak zmienić zawartość strony, na której znajduje się użytkownik.

Krótko mówiąc, możesz użyć AJAX lub iframe, aby uzyskać dostęp do drugiej strony (letterprint.php), a następnie zamienić zawartość elementu na stronie na zawartość tej strony. Jeśli nie chcesz, aby był widoczny dla użytkownika, możesz użyć ukierunkowanego arkusza stylów, aby nowa treść była widoczna tylko podczas drukowania.

Powiązane problemy