2010-04-05 22 views
6

Im folgenden LinkDrucken Inhalt einer anderen Seite

<a href=\"#\" onclick=javascript:print(\"\") style=\"color:blue;\">Print</a>" 
<script> 
function print() 
{ 
     //How to print the contents of another page 
} 

Antwort

-2

Denken Sie an die Sicherheit/Verlegenheit Probleme, die bestehen würde, wenn dies möglich war. Gott sei Dank erlauben Browser dies nicht.

Am nächsten kommt man, wenn man die Seite über AJAX holt, das aktuelle DOM durch die neue Seite ersetzt und mit der normalen print() -Methode von JS druckt.

+0

nicht ein einfacher Weg, über den Sie zumindest für einen Anfänger sprechen, was ist das Sicherheitsproblem übrigens? –

+0

@phpBOY - Das Problem ist, dass unreife Website-Besitzer Porno-Websites drucken, wenn Sie es nicht erwarten. –

16

Ich weiß, es ist eine alte Frage, aber man kann es wie folgt tun:

function printExternal(url) { 
    var printWindow = window.open(url, 'Print', 'left=200, top=200, width=950, height=500, toolbar=0, resizable=0'); 
    printWindow.addEventListener('load', function(){ 
     printWindow.print(); 
     printWindow.close(); 
    }, true); 
} 

in Firefox und Chrome getestet. IE9 funktioniert nicht.

+0

Ich würde vielen Dank Ihnen sagen. Dieser Trick funktioniert für mich. Es hilft wirklich für Kiosk-Modus bei Chrom. –

+0

Diese Methode funktioniert, aber leitet meine Hauptseite auf die Indexseite um. – iamsmug

+1

In Chrome 55.0.2883.59 erstellt es das Fenster, druckt nicht und schließt dann. – TheRealJAG

6

Eine Alternative besteht darin, mit einer get-Variablen auf die Seite zu verlinken und dann die Druckfunktion aufzurufen.

Für Ihren Link -

<a href="print-page.php?print=1">Print other page</a> 

dann auf Ihrer Seite drucken (oder alle Seiten)

<script type="text/javascript"> 
<? if(isset($_GET['print'])) { ?> 
window.print(); 
<? } ?> 
</script> 
+0

Obwohl Ihre Antwort wie eine gute mögliche Lösung aussieht, ist es besser, nicht auf Threads zu antworten, die in ein paar Jahren nicht aktiv waren. – ndsmyter

+10

Warum nicht? Ich suchte nach einer Lösung, fand diesen Thread. Ich habe meine eigene Lösung ausgearbeitet und hoffe, dass das jemand anderem hilft ... – sebtucknott

+0

Ja, es ist 2017 und Google hat mich hierher geführt. Das war die genaue Antwort, die ich suchte. – Jay

8

Wenn Sie bereits auf eine externe Seite haben (letterprint.php), setzen Sie die Seite in einem versteckten iframe und drucke den Inhalt von iframe mit dem onclick-Attribut in einer Schaltfläche.

<iframe src="letterprint.php" style="display:none;" name="frame"></iframe> 

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

Das hat gut für mich funktioniert! –

Verwandte Themen