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

Bir web sayfası yazdırmak için bu komut dosyasını kullanıyorum. Görüşlerim bu sayfayı oluşturuyor ve JS diğer her şeye dikkat ediyor.Sadece url ve yeni pencere açmadan web sayfası yazdırma?

Ancak bunun için yeni pencere açmak istemiyorum. Yani, window.open(URL) yerine ne kullanmalıyım no new window açılır. Benzer şekilde, print function için yeni pencere açmak istemiyorum. Bu sayfayı ne zaman görüntülediğimde, aynı sayfada her şeyi yapıyor. Yeni pencere yok, Yeni sekme yok. Bunu nasıl başarabilirim. Google ama hiçbir şey çalışmıyor gibi görünüyor.

cevap

36

Belki de gizli bir iFrame (Ben mesela jquery kullanıyorum) kullanarak bunu yapabilirsiniz:

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 

} 

Bu yazdırmak istediğiniz sayfasını yükler. baskı için, onu yüklemeden sonra basılmış olur ve böylece baskı sayfaya javascript kodu ekleyebilirsiniz:

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

Bu yeni bir pencere göstermeden sayfasını yazdırır. Bunu IE8,9 ve Google Chrome'da test ettim, bu yüzden de bunun Safari veya Firefox için çalışıp çalışmadığından emin değilim.

+0

Teşekkürler! Mükemmel çalışıyor! –

+0

"/ url/to/page/to/print" adresinde, html kodumu doğrudan koyabilir miyim? –

+1

@VitorGuerreiro: Evet, yazdırmak istediğiniz şeyin html kodu bu URL'de olmalıdır; Bu html kodu da cevabında belirtilen javascript koduna sahip olmalıdır (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(); 
    } 

Çağrı Baskı düğmesi tıklandığında bu javascript fonksiyonu. "Ana" Biz yeni window.I bu geçerli sayfa div yazdırmak edeceğini bildirmek istiyorum içine açmadan yazdırmak zorunda div kimliğidir. Herhangi bir sorun durumunda deneyin ve yankılanın.
sayesinde
Gourav

+0

doesnt iş ile bunu nasıl MDN'yi güzel bir örnek var. –