मैं फ़ंक्शन को कॉल करने के लिए window.print संवाद बंद ईवेंट में कैसे हुक कर सकता हूं - जावास्क्रिप्ट, जावास्क्रिप्ट-ईवेंट

मैं फ़ंक्शन को कॉल करने के लिए window.print संवाद बंद ईवेंट में कैसे लगा सकता हूं?

मैं jQuery प्लगइन का उपयोग कर रहा हूँ datatables और यह टेबल टूल्स प्लगइन किसी वेब पेज से डेटा प्रिंट करने के लिए।

डिफ़ॉल्ट व्यवहार

  • तालिका तालिका को प्रारूपित करें, वे केवल पृष्ठ पर दिखाई देने वाले तत्व हैं
  • एक div दिखाता है जो उपयोगकर्ता को अपने ब्राउज़र पर प्रिंट बटन पर क्लिक करने के लिए कहता है।
  • उपयोगकर्ता को मुद्रित करने के बाद उपयोगकर्ता को प्रेस करना होगा Esc, जो प्रिंट बटन क्लिक करने से पहले पृष्ठ को देखने के लिए कारण बनता है।

डिफ़ॉल्ट डेटाटेबल्स का उदाहरण

वांछित व्यवहार

  • डेटा को समान प्रारूपित करें
  • प्रिंट बटन पर क्लिक करने के लिए निर्देश न दिखाएं
  • कॉल window.print();
  • प्रिंट संवाद बंद होने के बाद, पृष्ठ को प्रिंट बटन क्लिक करने से पहले ऐसा करने का कारण बनता है।

उत्तर:

उत्तर № 1 के लिए 1

जावास्क्रिप्ट की कोई ज़रूरत नहीं है, इस सीएसएस समाधान के बारे में कैसे? यह भी सभी ब्राउज़रों में काम करना चाहिए।

@media print
{
/* Add here any selector for ("root") elements you do not want to be printed. */
.header, .footer, .floating-print-instructions
{
display: none;
}
}

ध्यान दें कि यदि कोई चयनकर्ता उस तत्व से मेल खाता है जिसमें स्पष्ट है display: block (और इसी तरह) इसके भीतर style विशेषता और ऐसे (या जावास्क्रिप्ट का उपयोग), यह शायद अभी भी दिखाया जाएगा।

साथ ही, मुझे विश्वास है कि कुछ ब्राउज़र (इंटरनेट एक्सप्लोरर?) हैं beforeprint तथा afterprint घटनाओं, मुझे लगता है कि आप उन्हें सुन सकते हैं और तदनुसार कार्य कर सकते हैं, लेकिन यह वास्तव में एक क्रॉस ब्राउज़र कार्यान्वयन नहीं है और यह सादे सीएसएस की तुलना में थोड़ा अधिक जटिल है।

आप कुंजीपटल / कीडाउन घटनाओं को सुन सकते हैं ताकि उपयोगकर्ता को कोट्रोल + पी दबाया जा सके। हालांकि, उपयोगकर्ता मुद्रित करने के लिए अन्य तरीकों (मेनू, टूलबार बटन) का उपयोग कर सकता है। इसके अलावा, कुछ ब्राउज़रों (क्रोम) में, window.print() आंशिक रूप से असीमित है (केवल window.close() कॉल इसके बाद समकालिक रूप से चलाए जाते हैं), इसलिए आपका कोड इसके बाद चल सकता है।


संबंधित सवाल
सबसे लोकप्रिय