2012-02-13 21 views
8

मुझे लगता है कि इसका जवाब लगभग निश्चित रूप से है "नहीं" का समर्थन करता है या नहीं, क्योंकि मैं एक छोटे से परीक्षण और चारों ओर खोज किया है, लेकिन वहाँ एक अंदर से है कि क्या window.print() भी पराक्रम काम का पता लगाने के लिए किसी भी चाल है पेज (यानी, जावास्क्रिप्ट से)? मुझे पता है कि डेस्कटॉप/लैपटॉप पर भी यह जानना संभव नहीं होगा कि सिस्टम पर एक प्रिंटर कॉन्फ़िगर किया गया है, उदाहरण के लिए, लेकिन कम से कम ब्राउज़र एक प्रिंट संवाद डालेगा।निर्धारित ब्राउज़र मुद्रण

मेरे एंड्रॉइड फोन में window.print() फ़ंक्शन है लेकिन यह (असुरक्षित रूप से) कुछ भी नहीं करता है।

फिर मैं ज्यादातर पूछ रहा हूँ तो वहाँ इतना :-)

उत्तर

5

में इस विषय पर एक अच्छा सवाल है दुर्भाग्य से यह एक नहीं की तरह दिखता है। window.print() फ़ंक्शन EMCAScript विनिर्देश का हिस्सा नहीं है। इसका मतलब है कि जावास्क्रिप्ट भाषा का हिस्सा बनने के लिए इसकी कोई आवश्यकता नहीं है, और इसके कार्यान्वयन के लिए कोई उचित दस्तावेज़ीकरण नहीं है। यह अपरिभाषित व्यवहार है और इसलिए इसके लिए परीक्षण बहुत मुश्किल लग रहा है।

सूत्रों का कहना है:

संपादित करें:

प्यारा थोड़ा स्क्रिप्ट मैं अपने ब्राउज़र का परीक्षण करने के लिए लिखा था, बस की जाँच करता है प्रिंट समारोह मौजूद है और फिर पूछता है प्रिंट करने के लिए:

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

हां यही मैंने काफी निर्णय लिया था। वैसे शायद यह संदर्भ के एक अच्छे बिंदु के रूप में भी काम करेगा :-) – Pointy

+2

मैंने अपने ब्राउज़र का परीक्षण करने के लिए यह भी लिखा: http://jsfiddle.net/zdY4d/4/ – Jivings

+0

@ जिविंग्स आपके उत्तर में पहेली जोड़ें ... – powtac

5

print() विधि तुल्यकालिक है। यह गीला तय करने के लिए बाद में ऐसा करना संभव बनाता है कि एक प्रिंट संवाद दिखाया गया है

var start = +new Date(); 
window.print(); 
var delta = + new Date() - start; 
console.log(delta); 
if (delta > 100) { console.log('It worked'); } 
+0

हालांकि उपयोगकर्ता को मुद्रित करने के लिए प्रिंट करने का प्रयास करना चाहिए यदि वह प्रिंट कर सकता है :)। वैसे भी आप इस स्क्रिप्ट का उपयोग कर सकते हैं और प्रिंटिंग विफल होने पर संदेश दिखा सकते हैं (डेल्टा> 100 नहीं)। – Fernando

+0

मुझे लगता है कि यदि कोई ब्राउज़र window.print को परिभाषित करता है (स्क्रिप्ट को तोड़ने से बचने के लिए इसे छोड़ने का प्रयास करें) लेकिन वास्तव में ऐसा कुछ भी न करें जो कोड की अगली पंक्ति को संसाधित करने के लिए 100ms से कम ले ले। मुझें यह पसंद है। मैं बस यह चाहता हूं कि वास्तव में इसे कॉल करने के लिए w/o का परीक्षण करने का कोई तरीका था! हालांकि, मैंने अभी तक देखा है यह सबसे अच्छा समाधान है। – jinglesthula

+1

बीटीडब्लू, अगर कोई उस प्लस साइन के बारे में सोच रहा है, तो http://stackoverflow.com/questions/221539/what-does-the-plus-sign-do-in-return-new-date – jinglesthula