2010-07-21 15 views
7

window.print(); sayfanın sonunda. Window.print() etrafındaki kodlara erişmenin hiçbir yolu yok. Sunucu tarafından üretildi ve ona dokunamam. Temel olarak IE nedeniyle, yazdırma iletişim kutusu açılmadan önce ancak sayfa yüklendikten sonra javascript'in biraz çalışmasına ihtiyacım var. Bunu yapamam çünkü window.print(); yazdırma iletişim kutusu açılır. Hala yazdırmaya ihtiyacım var ama önce myFunction() işlevini çalıştırmam gerekiyor, sonra window.print();Sayfayı çalıştırmadan önce işlev işlevi window.print()

<html><head></head><body></body><!--no access from here--><script>window.print();</script></html> 

cevap

16

Öyle gibi geçersiz gerekir ...

var _print = window.print; 
window.print = function() { 
    alert("Hi!"); 
    // do stuff 
    _print(); 
} 
+0

Bunu denediğime yemin edebilirdim. Bu mükemmel çalışıyor olsa! Teşekkürler! – joe

+0

Awww, beni yumrukla döv! +1. –

+0

@joe Sorun yok, Stack Overflow'a hoş geldiniz! Bunu yanıt olarak "kabul etmek" için oylama aşağı okunun altındaki onay işaretini tıklayabilirsiniz. –

8

sadece IE için desteğe ihtiyaç duyuyorsanız

, onbeforeprint olayı görmek "Temelde çünkü IE zaman ... gerekiyor".

window.onbeforeprint = function() { 
    // some code  
} 

burada fayda kodu hemen hemen IE hariç her tarayıcı OnBeforePrint, desteklemeyen tarayıcılarda aday olmayacağını olmasıdır.

+0

Vay yeni şu bir!! – joe

0

Aşağıdaki örneklerle erişimi yok önce de bir başka <script> etiketi koyarak deneyin:

<html><head></head><body></body><script>alert('Hello There !');</script><script>window.print();</script></html> 
İlgili konular