आप वास्तविक अपने वेब पेज के हिस्से के HTML स्रोत प्राप्त नहीं कर सकते हैं।
जब आप कोई वेब ब्राउज़र एक HTML पृष्ठ देते हैं, तो यह HTML को कुछ डोम नोड्स में पार्स करता है जो आपके दस्तावेज़ का निश्चित संस्करण है जहां तक ब्राउज़र का संबंध है। डीओएम एचटीएमएल से महत्वपूर्ण जानकारी रखता है जैसे कि आपने fix
शब्द से पहले यूनिकोड चरित्र यू +00 ए0 गैर-ब्रेकिंग स्पेस का उपयोग किया- लेकिन यह कच्ची टाइपिंग की बजाय इकाई संदर्भ के माध्यम से उपयोग की जाने वाली अपरिवर्तनीय जानकारी नहीं है (
)।
जब आप किसी तत्व नोड के innerHTML
के लिए ब्राउज़र से पूछते हैं, तो यह आपको मूल HTML स्रोत नहीं देता है जिसे उस नोड को उत्पन्न करने के लिए पार्स किया गया था, क्योंकि इसमें अब यह जानकारी नहीं है। इसके बजाए, यह डीओएम में संग्रहीत डेटा से नया HTML उत्पन्न करता है। ब्राउज़र उस HTML क्रमबद्धता को प्रारूपित करने का निर्णय लेता है; विभिन्न ब्राउज़र अलग-अलग HTML उत्पन्न करते हैं, और संभावना है कि यह वैसे ही नहीं होगा जैसा आपने इसे मूल रूप से स्वरूपित किया था।
विशेष रूप से,
तत्व नाम ऊपरी या निचले मामलों हो सकता है;
विशेषताएं उसी क्रम में नहीं हो सकतीं जैसा आपने उन्हें HTML में बताया था;
विशेषता उद्धरण आपके स्रोत के समान नहीं हो सकता है। आईई अक्सर अनगिनत विशेषताओं को उत्पन्न करता है जो वैध HTML भी नहीं हैं; आप सभी को यह सुनिश्चित हो सकता है कि innerHTML
जेनरेट किया गया है, उसी ब्राउज़र में इसे अन्य तत्व के innerHTML
पर लिखकर सुरक्षित होगा;
यह किसी भी चीज़ के लिए इकाई संदर्भों का उपयोग नहीं कर सकता है, लेकिन ऐसे वर्ण जो अन्यथा टेक्स्ट सामग्री में शामिल करना असंभव होगा: एम्परसैंड, कम-थान और विशेषता-मूल्य-उद्धरण।
लौटने के बजाय यह आपको केवल कच्चे
वर्ण दे सकता है।
आप सक्षम करने के लिए देखते हैं कि है कि एक नॉन-ब्रेकिंग स्पेस है नहीं हो सकता है, लेकिन यह अभी भी एक है और यदि आप किसी अन्य तत्व में है कि HTML सम्मिलित यह एक के रूप में कार्य करेगा।
x= el.innerHTML.replace(/\xA0/g, ' ')
लेकिन यह है कि केवल भागने है: यदि आप ऐसा करेंगे, किसी कारण से, आपको लगता है कि ऐसा करने से प्राप्त कर सकते हैं एक नॉन-ब्रेकिंग स्पेस कैरेक्टर एंटिटी-भाग निकले
लिए किया जा रहा है पर कहीं भी भरोसा करने की जरूरत नहीं होनी चाहिए ... यू +00 ए 0 और अन्य हजारों संभावित यूनिकोड वर्णों में से कोई भी नहीं, इसलिए यह थोड़ा संदिग्ध है।
तुम सच में वास्तव में अपने पृष्ठ की वास्तविक स्रोत HTML प्राप्त करने की आवश्यकता है, तो आप अपने खुद के यूआरएल (location.href
) के लिए एक XMLHttpRequest
बना सकते हैं और responseText
में पूर्ण, अन-पार्स HTML स्रोत मिलता है। ऐसा करने का लगभग कोई अच्छा कारण नहीं है।
सही जावास्क्रिप्ट प्रॉपर्टी 'आंतरिक HTML' है, न कि 'innerHtml' – romaintaz
सुनिश्चित करें कि जब आप' getElementById ('myE') से स्ट्रिंग प्रदर्शित कर रहे हों। आंतरिक HTML 'जिसे HTML के रूप में पुन: व्याख्या नहीं किया जा रहा है जिसके परिणामस्वरूप नहीं गैर-ब्रेकिंग स्पेस कोड दिखा रहा है। –