ध्यान दें कि Element::innerText
संपत्ति में वह पाठ नहीं होगा जो display:none
Google Chrome में CSS शैली " " द्वारा छिपाया गया है (साथ ही साथ वह अन्य सीएसएस टेकनीक द्वारा फंसे हुए कंटेंट को छोड़ देगा (फ़ॉन्ट-आकार सहित: 0, रंग: पारदर्शी, और) कुछ अन्य समान प्रभाव जो पाठ को किसी भी दृश्य तरीके से प्रस्तुत नहीं करने का कारण बनते हैं)।
अन्य CSS गुणों पर भी विचार किया जाता है:
- पहले "प्रदर्शन:" आंतरिक तत्वों की शैली को यह निर्धारित करने के लिए पार्स किया जाता है कि क्या यह एक ब्लॉक सामग्री (जैसे "प्रदर्शन: ब्लॉक" का परिसीमन करता है, जो ब्राउज़र की अंतर्निहित स्टाइलशीट में HTML ब्लॉक तत्वों का डिफ़ॉल्ट है, और जिसका व्यवहार अधिक नहीं है। अपनी खुद की सीएसएस शैली); यदि ऐसा है तो इनरटेक्स्ट संपत्ति के मूल्य में एक नई रूपरेखा सम्मिलित की जाएगी। यह TextContent प्रॉपर्टी के साथ नहीं होगा।
- इनलाइन सामग्री उत्पन्न करने वाले सीएसएस गुणों पर भी विचार किया जाएगा: उदाहरण के लिए इनलाइन तत्व
<br \>
जो इनलाइन न्यूलाइन उत्पन्न करता है, वह इनरटेक्स्ट के मूल्य में एक नई लाइन भी उत्पन्न करेगा।
- "प्रदर्शन: इनलाइन" शैली टेक्स्टकॉन्टेंट या इनरटेक्स्ट में या तो कोई नई रेखा नहीं बनाती है।
- "डिस्प्ले: टेबल" स्टाइल टेबल के चारों ओर और टेबल की पंक्तियों के बीच में नई सुर्खियाँ बनाता है, लेकिन "डिस्प्ले: टेबल-सेल" एक टैब कैरेक्टर उत्पन्न करेगा।
- "स्थिति: निरपेक्ष" संपत्ति (प्रदर्शन के साथ प्रयोग: ब्लॉक या प्रदर्शन: इनलाइन, इससे कोई फर्क नहीं पड़ता) भी एक लाइन ब्रेक डालने का कारण होगा।
- कुछ ब्राउज़रों में स्पैन के बीच एक सिंगल स्पेस सेपरेशन भी शामिल होगा
लेकिन Element::textContent
फिर भी लागू किए गए सीएसएस के आंतरिक पाठ तत्वों की सभी सामग्री स्वतंत्र रूप से होगी, भले ही वे अदृश्य हों। और TextContent में कोई अतिरिक्त नयालाइन या व्हाट्सएप उत्पन्न नहीं किया जाएगा, जो सभी शैलियों और संरचना और इनलाइन / ब्लॉक या आंतरिक प्रकारों को तैनात करता है।
माउस चयन का उपयोग करते हुए कॉपी / पेस्ट ऑपरेशन क्लिपबोर्ड में डाले गए सादे-पाठ प्रारूप में छिपे हुए पाठ को छोड़ देगा, इसलिए इसमें सब कुछ शामिल नहीं होगा textContent
, लेकिन केवल वही है जो innerText
(व्हाट्सएप / न्यूलाइन पीढ़ी के बाद के रूप में) ।
दोनों गुण तब Google Chrome में समर्थित हैं, लेकिन उनकी सामग्री तब भिन्न हो सकती है। पुराने ब्राउज़रों में अभी भी सब कुछ शामिल है जैसे कि टेक्स्टकॉन्टेंट में अब सब कुछ शामिल है (लेकिन व्हाट्सएप / नईलाइन्स की पीढ़ी के संबंध में उनका व्यवहार असंगत था)।
jQuery इन असंगतताओं को ब्राउज़र के बीच ".text ()" विधि का उपयोग करके हल करेगा, जो कि एक $ () क्वेरी के माध्यम से लौटाए गए तत्वों में जोड़ा गया है। आंतरिक रूप से, यह केवल "नोड" स्तर के साथ काम करते हुए, HTML डोम को देखकर कठिनाइयों का हल करता है। तो यह मानक textContent की तरह लग रही कुछ वापस कर देगा।
चेतावनी यह है कि यह jQuery विधि किसी भी अतिरिक्त रिक्त स्थान या लाइन विराम को सम्मिलित नहीं करेगी <br />
जो सामग्री के सबलेमेंट्स (जैसे ) के कारण स्क्रीन पर दिखाई दे सकती है।
यदि आप एक्सेसिबिलिटी के लिए कुछ स्क्रिप्ट डिज़ाइन करते हैं और आपकी स्टाइलशीट नॉन-ऑरल रेंडरिंग के लिए पार्स की जाती है, जैसे कि ब्रेल रीडर के साथ संवाद करने के लिए उपयोग किए जाने वाले प्लगइन्स, इस टूल को टेक्स्टकॉन्टेंट का उपयोग करना चाहिए, यदि इसमें स्पैन के साथ स्टाइल किए गए विशिष्ट विराम चिह्न शामिल होने चाहिए। "प्रदर्शन: कोई नहीं" और वह आमतौर पर पृष्ठों में शामिल हैं (उदाहरण के लिए सुपरस्क्रिप्ट / सदस्यता के लिए), अन्यथा इनरटेक्स्ट ब्रेल रीडर पर बहुत भ्रमित होगा।
CSS ट्रिक्स द्वारा छिपाए गए ग्रंथों को आमतौर पर प्रमुख खोज इंजन द्वारा अनदेखा किया जाता है (जो आपके HTML पृष्ठों के CSS को भी पार्स कर देगा, और HTML / CSS पार्सर और DOM संपत्ति का उपयोग करके उन ग्रंथों को भी अनदेखा कर देगा जो पृष्ठभूमि पर रंगों के विपरीत नहीं हैं) "इनरटेक्स्ट" बिल्कुल आधुनिक दृश्य ब्राउज़रों की तरह (कम से कम इस अदृश्य सामग्री को अनुक्रमित नहीं किया जाएगा ताकि छिपे हुए पाठ का उपयोग पृष्ठ में कुछ कीवर्ड को अपनी सामग्री की जांच करने के लिए बाध्य करने के लिए एक चाल के रूप में नहीं किया जा सके); लेकिन इस छिपे हुए पाठ को परिणाम पृष्ठ में प्रदर्शित किया जाएगा (यदि पृष्ठ अभी भी परिणाम में शामिल किए जाने वाले सूचकांक से योग्य था), तो अतिरिक्त शैलियों और लिपियों को हटाने के लिए पूर्ण HTML के बजाय "textContent" संपत्ति का उपयोग करें।
यदि आप इन दोनों गुणों में से किसी एक में कुछ सादा-पाठ असाइन करते हैं, तो यह आंतरिक मार्कअप और उस पर लागू शैलियों को अधिलेखित कर देगा (केवल निर्दिष्ट तत्व ही इसके प्रकार, गुण और शैली को रखेगा), इसलिए दोनों गुणों में तब समान सामग्री होगी । हालाँकि, कुछ ब्राउज़र अब इनरटेक्स्ट को लिखने का सम्मान नहीं करेंगे, और आपको केवल टेक्स्टकॉन्टेंट संपत्ति को अधिलेखित करने देंगे (आप इन गुणों को लिखते समय HTML मार्कअप नहीं डाल सकते हैं, क्योंकि HTML विशेष वर्णों का शाब्दिक रूप से प्रकट होने के लिए संख्यात्मक चरित्र संदर्भों का उपयोग करके ठीक से एन्कोड किया जाएगा। , यदि आप तब या innerHTML
के असाइनमेंट के बाद संपत्ति पढ़ते हैं ।innerText
textContent