2015-11-23 9 views
11

मेरे पास एक परिदृश्य है जहां मेरे वेबपृष्ठ में मैं एक विंडो करता हूं। ओपन() जो एक और विंडो खोलता है जिसका onLoad()window.print() को आमंत्रित करता है। इस प्रवाह में, माता-पिता window पर क्लिक किए जाने वाले किसी भी लिंक को अस्वीकार कर दिया गया है। मैं इस समस्या से कैसे दूर हो जाऊं?खिड़की की खिड़की फ्रीज होती है जब window.open प्रिंट पर ट्रिगर करता है लोड

उदाहरण के लिए: बनाने, प्रबंधित और प्रिंट:

एक HTML पृष्ठ पर तीन संबंध हैं।

var url = '/actions/print/'; 
    var win = window.open(url,"Title_","resizable=yes,scrollbars=yes,directories=no,titlebar=no,location=no,status=no,menubar=no,width="+width+",height="+height); 

अब, एचटीएमएल /actions/print द्वारा प्रदान की गई है:

<html><body onload="window.print();"> ... Content goes here ...</body></html> 

तो जैसा कि आप देख सकते हैं, प्रिंट पर क्लिक एक नई विंडो और ट्रिगर को खोलता प्रिंट लिंक के लिए जावास्क्रिप्ट कोड पीछा कर रहा है तुरंत प्रिंट करें। इस स्थिति में, जब मैं तीन लिंक के साथ पैरेंट विंडो पर वापस जाता हूं और अन्य लिंक पर क्लिक करने का प्रयास करता हूं, तो यह काम नहीं करता है और जमे हुए दिखाई देता है।

+1

@drew धन्यवाद। – Sripaul

+1

आप एक टाइमआउट का उपयोग करने का प्रयास कर सकते हैं? 'window.setTimeout (function() {window.print();}, 0); 'मुझे बताएं कि यह काम करता है :) – www139

+0

@Sripaul तो, क्या मेरा जवाब किसी भी तरह से आपकी मदद करता है? – redrum

उत्तर

15

आप इस समस्या को ओएस एक्स पर हल नहीं कर सकते हैं। जो मुझे पूरा यकीन है कि आपने केवल परीक्षण किया है।

यहां बताया गया है कि मैं विभिन्न ब्राउज़र और प्लेटफॉर्म पर परीक्षण के बाद उस निष्कर्ष पर कैसे आया।

  • क्रोम, सफारी और फ़ायरफ़ॉक्स ओएस एक्स पर माता-पिता खिड़की जब एक प्रिंट मोडल एक बच्चे खिड़की से खोला गया था के साथ अन्तरक्रियाशीलता (प्रिंट संवाद को बंद करने के लिए, लेकिन पॉप नहीं है, फिर से सक्षम अन्तरक्रियाशीलता की अनुमति नहीं दी)।

  • विन XP, आईई 11, क्रोम और फ़ायरफ़ॉक्स (Win7 पर सभी) पर IE8 ने हमेशा इसी परिदृश्य के साथ अंतःक्रियाशीलता की अनुमति दी।

इससे मुझे विश्वास हुआ कि यह एक ओएस एक्स प्रतिबंध या सिफारिश थी। आगे अनुसंधान पर, यहाँ, मैं क्या developer.apple.com पर पाया है मेरी संदेह की पुष्टि:

एक दस्तावेज़-मॉडल संवाद एक विशेष दस्तावेज़ भीतर कुछ और करने से उपयोगकर्ता को रोकता है। उपयोगकर्ता ऐप में और अन्य ऐप्स में अन्य दस्तावेज़ों पर स्विच कर सकता है। दस्तावेज़-मोडल संवाद चादरें होनी चाहिए, जिन्हें दस्तावेज़-मोडल संवाद (शीट्स) का उपयोग करने में वर्णित किया गया है।

एक शीट का उपयोग करें जब कई दस्तावेज़ अलग-अलग समय में एक ही विंडो में दिखाई दे सकते हैं। उदाहरण के लिए, एक टैबड ब्राउज़र अलग-अलग समय में एक ही विंडो में विभिन्न दस्तावेज़ प्रदर्शित कर सकता है। इस स्थिति में एक शीट उपयुक्त है, भले ही यह केवल उस दस्तावेज़ पर लागू होती है जो वर्तमान में विंडो में दिखाई दे रही है। क्योंकि उपयोगकर्ताओं को उसी विंडो में एक अलग दस्तावेज़ देखने से पहले वर्तमान दस्तावेज़ को प्रभावी रूप से खारिज कर देना चाहिए, उन्हें पहले शीट को खारिज कर देना चाहिए।

https://developer.apple.com/library/mac/documentation/UserExperience/Conceptual/OSXHIGuidelines/WindowDialogs.html

संबंधित मुद्दे