में कर्सर पंक्ति और कॉलम प्राप्त करें कर्सर स्थिति खोजने के लिए कई व्यंजन हैं क्योंकि उपयोगकर्ता सामग्री-संपादन योग्य div में टेक्स्ट टाइप करता है, लेकिन मैं उनमें से कोई भी काम करने के लिए नहीं प्राप्त कर सकता। वास्तव में, मुझे सबसे सरल कोड से सबसे आश्चर्यजनक परिणाम मिलते हैं; यदि, इस निम्न स्निपेट में, आप इसे हटाने के लिए कुछ टेक्स्ट जोड़ते हैं और फिर बैकस्पेस जोड़ते हैं, तो आपका स्टार्टऑफसेट वास्तव में बढ़ता है! (मैं कल्पना कर सकता हूं कि इसके विभाजन तत्व या कुछ और ऑफ़सेट में गैर-प्रिंट करने योग्य टैग या कुछ शामिल हैं।)सामग्री-संपादन योग्य div
मेरे पास एक div है जिसमें एक निश्चित फ़ॉन्ट होगा, लेकिन मैं सिंटैक्स को हाइलाइट करने की योजना बना रहा हूं (यह कुछ कोडमिरर नहीं कर सकता यदि बनाता है उस तरह समझ कारण है कि मैं अपने आप को स्थिति प्राप्त करना चाहते हूँ संपादन के साथ अपनी और अधिक इंटरैक्टिव शीघ्र लिपि में कहीं भी)
<html>
<head>
<script type="text/javascript">
<!--
var ta = null;
function onKeypress(event) {
var range = window.getSelection().getRangeAt(0);
document.getElementById("msg").textContent = ""+range.startContainer+","+range.startOffset;
}
function init() {
ta = document.getElementById("ta");
ta.focus();
ta.onkeypress = onKeypress;
}
//-->
</script>
<body onload="init();">
<noscript>
Sorry, you need javascript. Not much to see here otherwise; move along.
</noscript>
<p id="msg"></p><hr/>
<div id="ta" contenteditable="true" style="width:100%; height:100%; font-family: courier;">
</div>
</body>
</html>
मैं पंक्ति और स्तंभ कैसे पता, और पाठ प्राप्त कर सकते हैं, बस करो। किसी भी पंक्ति के लिए, ऐसी सामग्री-संपादन योग्य div में?
मुझे यकीन है कि तुम क्या कह रहे हैं अपने कोड के साथ गलत है नहीं कर रहा हूँ। जब मैं क्रोम में आपके उदाहरण कोड का परीक्षण करता हूं, तो कोड काम करता प्रतीत होता है - जब मैं स्थिति डिस्प्ले को बैकस्पेस करता हूं तब तक अद्यतन नहीं होता है जब तक कि मैं div में अधिक टेक्स्ट टाइप करना प्रारंभ नहीं करता, लेकिन फिर स्थिति प्रदर्शन फिर से सही होता है। क्या समस्या है कि बैकस्पेस कुंजीपटल घटना को ट्रिगर नहीं कर रहा है, या कुछ और जो मुझे याद आ रहा है? – Griffin
आह, मुझे लगता है कि मैं समझता हूं, मैंने एक उत्तर पोस्ट किया है। – Griffin