प्रिंट करें कुछ समय पहले मैंने jQuery का उपयोग करके एक लाइटबॉक्स प्लगइन बनाया जो एक लाइटबॉक्स में एक लिंक में निर्दिष्ट यूआरएल लोड करेगा। कोड वास्तव में सरल है:पॉपअप विंडो खोलने के लिए JQuery का उपयोग करना और
$('.readmore').each(function(i){
$(this).popup();
});
और लिंक इस तरह दिखेगा:
<a class='readmore' href='view-details.php?Id=11'>TJ Kirchner</a>
प्लगइन भी के माध्यम से पारित करने के लिए चौड़ाई, ऊंचाई, एक अलग यूआरएल, और अधिक डेटा के लिए तर्क को स्वीकार कर सकता है।
जिस समस्या का मैं सामना कर रहा हूं वह अब लाइटबॉक्स प्रिंट कर रहा है। मैंने इसे सेट अप किया है ताकि लाइटबॉक्स में बॉक्स के शीर्ष पर एक प्रिंट बटन हो। वह लिंक एक नई विंडो खुल जाएगा और उस विंडो को प्रिंट करेगा। यह सब लाइटबॉक्स प्लगइन द्वारा नियंत्रित किया जा रहा है। यहां बताया गया है कि यह कोड कैसा दिखता है:
$('.printBtn').bind('click',function() {
var url = options.url + ((options.url.indexOf('?') < 0 && options.data != "") ? '?' : '&') + options.data;
var thePopup = window.open(url, "Member Listing", "menubar=0,location=0,height=700,width=700");
thePopup.print();
});
समस्या यह है कि स्क्रिप्ट विंडो लोड होने तक प्रतीक्षा नहीं कर रही है। यह खिड़की दिखाई देने के पल मुद्रित करना चाहता है। नतीजतन, यदि मैं प्रिंट संवाद बॉक्स में "रद्द करें" पर क्लिक करता हूं, तो यह विंडो लोड होने तक बार-बार पॉपअप करेगा। पहली बार जब मैंने प्रिंटिंग की कोशिश की तो मुझे एक खाली पृष्ठ मिला। ऐसा इसलिए हो सकता है क्योंकि खिड़की लोड खत्म नहीं हुई थी।
मुझे पिछले कोड ब्लॉक को विंडो लोड होने तक प्रतीक्षा करने के लिए एक रास्ता खोजने की आवश्यकता है और फिर प्रिंट करें। मुझे लगता है कि ऐसा करने का एक आसान तरीका होना चाहिए, लेकिन मुझे अभी तक यह नहीं मिला है। या तो, या मुझे पॉपअप विंडो खोलने के लिए एक बेहतर तरीका खोजने और पॉपअप विंडो में वेबपृष्ठ कोड को वैकल्पिक किए बिना, मूल विंडो में लाइटबॉक्स स्क्रिप्ट से प्रिंट करने की आवश्यकता है।
ठीक है, मैं इसे view-details.php फ़ाइल में कोड जोड़ने के बिना ऐसा करने की कोशिश कर रहा हूं क्योंकि उस फ़ाइल को यह जानने की आवश्यकता नहीं है कि इसे मुद्रित किया जा रहा है। इस तरह मुझे लाइटबॉक्स में लोड की गई प्रत्येक फ़ाइल में कोड का एक स्निपिट जोड़ने की ज़रूरत नहीं है। –
यदि आप इसे लाइटबॉक्स में लोड कर रहे हैं तो आप window.open का उपयोग क्यों करते हैं? यदि आप AJAX के माध्यम से एचटीएमएल लोड करने के लिए jQuery का उपयोग कर रहे हैं तो आप jQuery में .load() फ़ंक्शन का उपयोग कर सकते हैं और प्रिंट को ऑन-असफल कॉलबैक के साथ ट्रिगर कर सकते हैं। –
क्योंकि मैं लाइटबॉक्स से बहुत अच्छी तरह प्रिंट नहीं कर सकता। मुझे इसके चारों ओर इस काले रंग की पृष्ठभूमि मिल गई है। यह अपनी खिड़की में बेहतर दिखता है और प्रिंट करता है। यह .load() का उपयोग करके एक दिलचस्प विचार है, लेकिन मैं नहीं चाहता कि सामग्री लाइटबॉक्स लोड के ठीक बाद प्रिंट करे। केवल जब उपयोगकर्ता प्रिंट लिंक पर क्लिक करता है, तो क्या मैं बॉक्स को प्रिंट करना चाहता हूं। –