संभावना है कि आप इस तरह के एक समारोह की जरूरत नहीं है। चूँकि आपका कोड पहले से ही ब्राउज़र * में है, आप HTML उत्पन्न करने और एन्कोडिंग करने के बजाय सीधे DOM तक पहुँच सकते हैं, जिसे वास्तव में उपयोग किए जाने वाले ब्राउज़र द्वारा पीछे की ओर डिकोड किया जाना होगा।
innerText
DOM में सादे पाठ को सम्मिलित करने के लिए संपत्ति का उपयोग करें और प्रस्तुत किए गए किसी भी भागने वाले कार्यों का उपयोग करने की तुलना में सुरक्षित रूप से बहुत तेज है। यहां तक कि एक स्थिर प्रीकोडेड स्ट्रिंग को असाइन करने से भी तेजinnerHTML
।
classList
कक्षाओं को संपादित करने के लिए, विशेषताओं dataset
को सेट करने के लिए data-
और setAttribute
दूसरों के लिए उपयोग करें ।
ये सभी आपके लिए भागने से बचेंगे। अधिक सटीक रूप से, कोई भागने की आवश्यकता नहीं है और ** के नीचे कोई एन्कोडिंग नहीं किया जाएगा, क्योंकि आप HTML के आसपास काम कर रहे हैं, DOM का पाठात्मक प्रतिनिधित्व।
// use existing element
var author = 'John "Superman" Doe <john@example.com>';
var el = document.getElementById('first');
el.dataset.author = author;
el.textContent = 'Author: '+author;
// or create a new element
var a = document.createElement('a');
a.classList.add('important');
a.href = '/search?q=term+"exact"&n=50';
a.textContent = 'Search for "exact" term';
document.body.appendChild(a);
// actual HTML code
console.log(el.outerHTML);
console.log(a.outerHTML);
.important { color: red; }
<div id="first"></div>
* यह उत्तर सर्वर-साइड जावास्क्रिप्ट उपयोगकर्ताओं (Node.js, आदि) के लिए अभिप्रेत नहीं है । ) के
** जब तक आप स्पष्ट रूप से इसे वास्तविक HTML में परिवर्तित नहीं करते हैं। जैसे पहुँच करinnerHTML
- यह तब होता है जब आप $('<div/>').text(value).html();
अन्य उत्तरों में सुझाए गए चलाते हैं । इसलिए यदि आपका अंतिम लक्ष्य दस्तावेज़ में कुछ डेटा सम्मिलित करना है, तो इस तरह से आप दो बार काम कर रहे हैं। इसके अलावा, आप देख सकते हैं कि परिणामी HTML में सब कुछ एनकोडेड नहीं है, केवल इसके लिए आवश्यक न्यूनतम ही वैध है। यह संदर्भ-निर्भरता से किया जाता है, यही कारण है कि यह jQuery पद्धति उद्धरणों को सांकेतिक शब्दों में बदलना नहीं करती है और इसलिए इसे एक सामान्य उद्देश्य के एस्केपर के रूप में उपयोग नहीं किया जाना चाहिए। जब आप HTML का निर्माण एक विशेषता के मान के स्थान पर अविश्वसनीय या उद्धरण युक्त डेटा के साथ एक स्ट्रिंग के रूप में कर रहे हों, तो उद्धरण से बचने की आवश्यकता होती है। यदि आप DOM API का उपयोग करते हैं, तो आपको भागने की बिल्कुल भी परवाह नहीं है।