मेरे पास एक संतोषजनक div है जिसमें विशिष्ट wysiwyg संपादक html (बोल्ड, एंकर, सूचियां) शामिल हैं।संवेदी डीआईवी - मैं कैसे निर्धारित कर सकता हूं कि कर्सर सामग्री के प्रारंभ या समाप्ति पर है
मुझे यह निर्धारित करने की आवश्यकता है कि वर्तमान कर्सर, शुरुआत में और div के अंत में, केडडाउन पर है या नहीं। इसका कारण कर्सर की स्थिति के आधार पर है, और कुंजी दबाया गया है, मैं इस div को पिछले div के साथ बैकस्पेस पर विलय करना चाहता हूं, या एंटर पर एक नया निम्न div बना सकता हूं।
मैं श्रेणियों के साथ घूम रहा हूं, लेकिन जब आप तत्व के अंदर एचटीएमएल के साथ काम कर रहे हैं, तो चीजें बहुत जटिल हो जाती हैं।
मुझे उम्मीद है कि मुझे कुछ सरल समाधान दिखाना चाहिए।
क्या यह निर्धारित करने का एक अपेक्षाकृत सरल तरीका है - मैं रंगी जैसी लाइब्रेरी का उपयोग करने के लिए खुला हूं।
धन्यवाद!
संपादित करें:
$('.mycontenteditable').bind('keydown', handle_keydown)
handle_keydown = function(e) {
range = window.getSelection().getRangeAt(0)
start_range = document.createRange()
start_range.selectNodeContents(this.firstChild)
start_range.collapse(true) // collapse to start
is_start = start_range.compareBoundaryPoints(Range.START_TO_START,range)
end_range = document.createRange()
end_range.selectNodeContents(this.lastChild)
end_range.collapse(false)
is_end = end_range.compareBoundaryPoints(Range.END_TO_END,range)
}
मैं कुछ इस तरह के साथ किसी भी अजीब समस्या आती है करने के लिए जा रहा हूँ: मैं इन पंक्तियों के साथ कुछ सोच रहा हूँ?
यह बहुत मजबूत होना चाहिए आईई <9, जो सीमा या चुनाव वस्तुओं का समर्थन नहीं करता के लिए छोड़कर। –
ध्यान दें कि यह समाधान न्यूलाइन के लिए खाता नहीं है। यदि कर्सर और अंत के बीच एकमात्र पाठ न्यूलाइन की एक श्रृंखला है, तो यह गलत तरीके से कहता है कि कर्सर div के अंत में है। खाली लाइनों को हमेशा '
'के साथ दर्शाया जाता है, लेकिन आप' post_range 'में केवल
' की तलाश नहीं कर सकते हैं।क्लोन सामग्री() ', क्योंकि वर्तमान लाइन अंतिम पंक्ति है, क्योंकि इसमें वर्तमान पंक्ति '
' शामिल है। इसके अलावा, क्रोम 'क्लोन सामग्री()' में '