हां। सबसे आसान तरीका नियमित रूप से उन चीज़ों को प्रतिस्थापित करने के लिए नियमित अभिव्यक्तियों का उपयोग करना है जो उनके लिंक किए गए समकक्षों के लिंक की तरह दिखते हैं। कुछ ऐसा:
node.innerHTML = node.innerHTML.replace(/(http:\/\/[^\s]+)/g, "<a href='$1'>$1</a>")
(मेरा रेगेक्स थोड़ा जंगली है, इसलिए आपको वाक्यविन्यास के साथ खेलना पड़ सकता है)। यह सिर्फ एक साधारण मामला है। आपको यहां स्क्रिप्ट इंजेक्शन से सावधान रहना होगा (उदाहरण के लिए यदि मेरे पास http://"><script>doevil()</script>
है)। एक तरीका यह हल करने के लिए एक लिंक इमारत समारोह का उपयोग करना है:
node.innerHTML = node.innerHTML.replace(/ ... /g, buildLink($1));
कहाँ buildLink()
जांच कर सकते हैं सुनिश्चित करें कि URL कुछ भी दुर्भावनापूर्ण शामिल नहीं है बनाने के लिए।
हालांकि, RegEx-innerHTML विधि टेक्स्ट के बड़े निकायों पर बहुत अच्छी तरह से प्रदर्शन नहीं करेगी, क्योंकि यह नोड की संपूर्ण HTML सामग्री को आँसू देती है और पुनर्निर्माण करती है। आप DOM तरीकों के साथ-साथ इस लक्ष्य को हासिल कर सकते हैं:
- ढूँढें संदर्भ पाठ नोड
- सामग्री में करने के लिए, लगता है शुरू करने और एक यूआरएल
- उपयोग
splitText()
विधि के अंत अनुक्रमित 3 में नोड विभाजित करने के लिए: इससे पहले, लिंक, के बाद
href
उस लिंक से पहले इस <a>
नोड डालने के लिए लिंक
- उपयोग
insertBefore()
के समान होता है के साथ एक <a>
नोड बनाएं +०१२३५१६४१०
- उपयोग
appendChild()
"एक HTML पृष्ठ के भीतर" <a>
नोड
दूसरी विधि के लिए +1, अधिक कुशल। –