2012-05-17 22 views
6

ब्राउज़र से किसी पृष्ठ को प्रिंट करते समय, यह media="print" के साथ घोषित print.css स्टाइलशीट को संदर्भित करता है। ब्राउज़र कुछ सीएसएस नियमों को अक्षम करता है जैसे background-image और background-color, कुछ ब्राउज़रों के पास उन्हें सक्षम करने के विकल्प होते हैं।ब्राउज़र से प्रिंट करते समय पृष्ठभूमि-छवि और पृष्ठभूमि-रंग समर्थन का पता लगाएं

जैसा कि this answer में बताया गया है, पृष्ठ व्यवहार से इस व्यवहार को ओवरराइड करना संभव नहीं है।

मैं इस बारे में दो प्रश्न हैं:

  • वहाँ किसी भी दस्तावेज या इन मुद्रण नियमों के बारे में अच्छा संदर्भ है? उदाहरण के लिए:
    • कौन सी सीएसएस नियम अक्षम हैं?
    • क्या जावास्क्रिप्ट प्रिंटिंग से पहले पृष्ठ पर कुछ कर सकता है?
  • जावास्क्रिप्ट के साथ प्रिंटिंग मोड में ब्राउज़र का पता लगाने और फिर एक सुंदर गिरावट प्रणाली बनाने का कोई तरीका है?

उत्तर

3

ब्राउज़र प्रिंट पेज कैसे काले रंग का बॉक्स है; मैं कोई निश्चित संदर्भ नहीं ढूंढ पाया है।

सभी प्रमुख ब्राउज़रों के पास वेब पेज को "पृष्ठ से फिट करने के लिए" संक्षिप्त पृष्ठ (डिफ़ॉल्ट रूप से सक्षम) पर प्रिंट विकल्प होते हैं, और पृष्ठभूमि छवियों और रंगों (डिफ़ॉल्ट रूप से अक्षम) प्रिंट करने के लिए प्रिंट विकल्प होते हैं। अधिकतर उपयोगकर्ता इन डिफ़ॉल्टों को छोड़ देंगे, अगर उन्हें पता भी है कि ये विकल्प मौजूद हैं। मैंने ब्राउज़िंग के दौरान ब्राउज़र को किसी भी अन्य सीएसएस नियमों को "अक्षम" नहीं देखा है।

फ़ायरफ़ॉक्स और आईई onbeforeprint और onafterprint ईवेंट का समर्थन करते हैं, ताकि आप जावास्क्रिप्ट के साथ प्रिंटिंग के दौरान पता लगा सकें, हालांकि स्पष्ट रूप से यह एक क्रॉस-ब्राउज़र समाधान नहीं है।

अधिकांश मुद्रण के लिए आवश्यक समायोजन सीएसएस द्वारा नियंत्रित किया जा सकता है (या तो एक अलग प्रिंट स्टाइलशीट में या अपने मुख्य स्टाइलशीट में एक @media print { ... } ब्लॉक के रूप में):

  • CSS-Discuss Wiki पर आप कितना कर सकते हैं एक अच्छा पेज है सीएसएस के माध्यम से नियंत्रण।

  • मेरा सुझाव है कि HTML5 Boilerplate से प्रिंट स्टाइल को एक अच्छी शुरुआत बिंदु के रूप में देखें।

  • आपको लगता है कि मुद्रित किया जाना चाहिए, आप अपने पृष्ठ में <img> तत्वों, display: none साथ छिपा हुआ है, तो शामिल कर सकते हैं उन्हें display: block (या inline) अपने प्रिंट सीएसएस के साथ उनके सामने प्रस्तुत करें पृष्ठभूमि छवियों है।

आप भारी मुद्रण के लिए पेज को संशोधित करने की जरूरत है, मैं नहीं बल्कि जावास्क्रिप्ट के साथ समायोजन करने के लिए कोशिश कर रहा से पेज का एक अलग प्रिंट संस्करण की पेशकश की सलाह देते हैं,।

0

पहले बिंदु के बारे में निश्चित नहीं है, लेकिन प्रिंटिंग मोड में ब्राउज़र का पता लगाने के लिए, आप स्क्रीन के लिए भी ऐसा ही कर सकते हैं। या तो Modernizr का उपयोग करें और सशर्त तो समर्थित सुविधाओं के लिए करने के लिए कक्षाओं में जोड़ने के लिए, की तरह निशाना बनाया सीएसएस नियम बनाने:

body.whateverfeature .yourrule { } 

या आप के लिए परीक्षण करना चाहते हैं, h5bp की तरह कुछ का उपयोग करता है, तो यह सिर्फ आईई होता है:

<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]--> 

+0

यह वास्तव में नहीं है जो मैंने पूछा था। मुझे मुद्रण मोड में ब्राउज़र का पता लगाने का एक तरीका चाहिए (हाँ, print.css काम करेगा, लेकिन मुझे डीओएम और सीएसएस को संशोधित करने की आवश्यकता है)। आईई में एक 'onforeforeprint' घटना है, लेकिन क्या अन्य ब्राउज़रों में समकक्ष है? यह एक विषय है जो Google को गूंगा बनाता है: एस –

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