वहाँ एचटीएमएल इस तरह है:कर्सर की स्थिति बहाल contenteditable बदलने के बाद
<div contenteditable="true" class="value research-form thumbnail">
Some text here
</div>
और div की सामग्री dynamicly कुछ शब्दों को हाइलाइट करना चाहिए उपयोगकर्ता प्रकार जैसे की तरह कुछ बनाने, जबकि:
<div contenteditable="true" class="value research-form thumbnail">
Some text here <span style="background-color: yellow">highlight</div> it
</div>
<script>
$(document).ready(function() {
var input = $('#textarea').on('input', function (event) {
var newText = input.text().replace('highlight', '<span style="background-color: yellow">highlight</div>');
input.html($.parseHTML(newText));
});
});
</script>
लेकिन वहाँ है एक समस्या: जब मैं इनपुट में पाठ की शुरुआत में div कर्सर में टेक्स्ट रीफ्रेश करता हूं।
क्या सामग्रीबद्ध मूल्य बदलने के बाद कर्सर की स्थिति को पुनर्स्थापित करने के कोई तरीके हैं? या शायद एक ही प्रभाव पाने का दूसरा तरीका है?
कर्सर स्थिति सहेजने का प्रयास करें (देखें http://stackoverflow.com/questions/4767848/get-caret-cursor-position-in-contenteditable-area-containing- एचटीएमएल-सामग्री) और उसके बाद इसे वापस सेट करें (input.html (...) के बाद http://stackoverflow.com/questions/1181700/set-cursor-position-on-contentitable-div देखें)। मुझे लगता है कि आपको यहां अन्य समस्या भी है: आपके उदाहरण में "हाइलाइट" शब्द प्रत्येक बार पाठ को संपादित करते समय एक नए अवधि में लपेटा जाएगा। आपको नए स्पैन जोड़ने से पहले प्लेसहोल्डर्स के साथ लिपटे शब्दों को प्रतिस्थापित करना चाहिए, फिर प्लेसहोल्डर्स को वापस लेना चाहिए। – Qwerty
यदि आपके पास कोई समाधान है जो आपकी अपेक्षाओं को पूरा करता है तो आपको इसे एक उत्तर के रूप में जोड़ना चाहिए और इसे चुनना चाहिए। http://stackoverflow.com/help/self-answer –
@ जेसनस्पर्सके ने – Tdm