html - How to extract the fragment between the body (<body>...</body>) tags from AJAX response in JavaScript -


एक एजेएक्स प्रतिक्रिया पूर्ण HTML पृष्ठ लौट रहा है। मुझे शरीर ( & lt; body & gt; और & lt; / body & gt; ) टैग्स के बीच के टुकड़े को निकालने की आवश्यकता है जावास्क्रिप्ट का उपयोग करते हुए ग्राहक पक्ष पर यह आवश्यक है। किसी भी मदद की सराहना की जाएगी।

सबसे सरल लेकिन सबसे खराब तरीका सरल स्ट्रिंग हैकिंग होगा प्रतिक्रिया पाठ।

  var bodyhtml = html.split ('& lt; body & gt;')। पॉप ()। Split ('& lt; / body & gt;') [0]; सामान्य मामले में यह असंतोषजनक नहीं है, लेकिन अगर आप HTML के सटीक स्वरूप को वापस लौटाते हैं, तो यह संभव हो सकता है (जैसे कि  & lt; body & gt; पर कोई विशेषता नहीं है। , उस पृष्ठ के बीच में एक टिप्पणी में, अनुक्रम  & lt; body & gt;  और  & lt; / body & gt;  का उपयोग नहीं किया जाता है)। < / P> 

एक और अभी भी बहुत बुरा रास्ता है कि एक नया बनाया गया & lt; div & gt; के innerHTML और दस्तावेज़ को तत्वों और

; या & lt; div & gt; के अंदर लिखित और & lt; body & gt; आप & lt; head & gt; के > उन बच्चों से मज़बूती से अलग करने में असमर्थ होंगे जो इस प्रकार से है, लेकिन यह ऐसा उदाहरण है जो jQuery करता है।

एक अधिक मजबूत लेकिन अधिक दर्दनाक तरीका एक अलग HTML दस्तावेज़ का उपयोग करना होगा:

  var iframe = document.createElement ('iframe'); Iframe.style.display = 'none'; Document.body.insertBefore (iframe, document.body.firstChild); Var idoc = 'contentDocument' iframe में? Iframe.contentDocument: iframe.contentWindow.document; idoc.write (htmlpage); idoc.close (); चेतावनी (idoc.body.innerHTML); document.body.removeChild (आइफ्रेम);  

हालांकि यह दस्तावेज़ के अंदर सभी स्क्रिप्ट निष्पादित करेगा, संभवत: इसे बदल रहा है, ताकि वह भी संतोषजनक न हो।


Comments