2012-02-13 28 views
8

bu cevabı "hayır" neredeyse kesin olduğunu düşünüyorum baskı destekleyip desteklemediğini ben etrafında küçük bir arama test ve yaptığım için, belirleyin, fakat içeriden kudreti dahi window.print() olmadığını çalışmalarını tespit etmek için herhangi bir hile var sayfa (ör. JavaScript’ten)? Masaüstü/dizüstü bilgisayarlarda bile, sistemde yapılandırılmış bir yazıcının olup olmadığını asla bilmek mümkün olmayacağını biliyorum, ancak en azından tarayıcı bir baskı iletişim kutusu kuracaktır.tarayıcı

Android telefonumun bir window.print() işlevi var, ancak (şaşırtıcı derecede) hiçbir şey yapmıyor.

SO :-)

cevap

5

de konuyla ilgili iyi bir soru var bu yüzden Yine çoğunlukla soruyorum Ne yazık ki bir hayır gibi görünüyor. window.print() işlevi, EMCAScript belirtiminin bir parçası değildir. Bu, onun, JavaScript dilinin bir parçası olmasının gerekmediği ve uygulanması için uygun bir dokümantasyon olmadığı anlamına gelir. Bu tanımlanmamış bir davranış ve bu yüzden test etmek çok zor görünüyor.

Kaynaklar:

DÜZENLEME: Ben tarayıcıları test etmek yazdı

Sevimli küçük komut, sadece baskı işlevi var ve sonra sorar denetler yazdırmak için:

if(window.print) { 
    if(confirm('I can print. Would you like to?')) 
     window.print() 
} 
+0

gösterilip gösterilmediğine karar vermek için sonradan karar vermeyi mümkün kılar. Belki de bu şimdi çok iyi bir referans noktası olarak hizmet edecektir :-) – Pointy

+2

Ayrıca bunu tarayıcılarımı test etmek için yazdım: http://jsfiddle.net/zdY4d/4/ – Jivings

+0

@Jivings, kemanı yanıtınıza ekleyin ... – powtac

5

print() yöntem eşzamanlıdır. Bu, bir yazdırma iletişim kutusunun

+0

Kullanıcı, baskı yapıp yapamayacağını test etmek için yazdırmaya çalışmalıdır :). Yine de, bu komut dosyasını kullanabilir ve baskı başarısız olursa bir mesaj gösterebilirsiniz (delta> 100 değil). – Fernando

+0

Eğer bir tarayıcı window.print'i tanımlarsa (bunu çağırmayı deneyen betiklerin kırılmasını önlemek için), ancak bir sonraki kod satırını işlemek için 100 ms'den daha az sürecek bir şey yapmadığını varsayalım. Bunu sevdim. Sadece bunu gerçekten denemek için bir yol olduğunu keşke! Yine de, gördüğüm en iyi çözüm bu. – jinglesthula

+1

BTW, herkesin bu artı işaretini merak etmesi durumunda, http://stackoverflow.com/questions/221539/what-does-the-plus-sign-do-in-return-new-date – jinglesthula