2009-05-12 22 views
5

मैं अपने वेब अनुप्रयोग में एक फ़ाइल इंटरफ़ेस संपादित बना रही हूँ के लिए स्तंभ संख्या, मैं फ़ाइल की सामग्री के साथ एक पाठ क्षेत्र की है।प्रदर्शन और एक पाठ क्षेत्र

जब टेक्स्टरेरा केंद्रित है, तो मैं कर्सर की स्थिति को आउटपुट करना चाहता हूं, यानी लाइन नंबर और कॉलम: यह उपयोगी है क्योंकि त्रुटि संदेश आमतौर पर एक पंक्ति संख्या उत्पन्न करते हैं, उदाहरण के लिए।

सवाल यह है: मैं कैसे पाठ क्षेत्र में कर्सर की स्थिति पता लगाने करते हैं? मैं प्रोटोटाइप लाइब्रेरी का उपयोग कर रहा हूं। शायद पहले से ही एक समाधान है?

मुझे टेक्स्टरेरा के लिए फैंसी टूलबार में वास्तव में दिलचस्पी नहीं है, जो उन उन्नत विजेट्स द्वारा प्रदान की जाती हैं।

उत्तर

6

आप इन 2 लिंक की जाँच कर सकते हैं:

http://www.dedestruct.com/2008/03/22/howto-cross-browser-cursor-position-in-textareas/[मूल स्रोत किसी भी अधिक मौजूद नहीं है, वेब संग्रह के नवीनतम संस्करण के लिए संशोधित लिंक अंक]

https://developer.mozilla.org/En/DOM:Selection

.. आपके पास एक चयन (टेक्स्ट में कर्सर इंडेक्स) है, तो आप अपने टेक्स्ट को न्यूलाइन द्वारा विभाजित कर सकते हैं, इस प्रकार लाइन नंबर प्राप्त कर सकते हैं। आप एक लाइन

+0

मुझे लगता है कि कोशिश करता हूँ, धन्यवाद। – alamar

+3

एफवाईआई: dedestruct.com लिंक 11 अप्रैल, 2011 को मर चुका है। – drudge

+0

वेब आर्काइव का उपयोग करके टूटी हुई लिंक हल की गई: http://web.archive.org/web/20090221140237/http://www.dedestruct.com/ 2008/03/22/howto-पार ब्राउज़र-कर्सर स्थिति में textareas / –

0

जब मैं पाठ क्षेत्र और पाठ क्षेत्र की वर्तमान स्तंभ का वर्तमान लाइन नंबर चाहते हैं की शुरुआत से सूचकांक का निर्धारण करके स्तंभ प्राप्त कर सकते हैं, मैं इस तरह हल:

<textarea onkeyup="getLineNumberAndColumnIndex(this);" onmouseup="this.onkeyup();" > 
</textarea> 

function getLineNumberAndColumnIndex(textarea){ 
    var textLines = textarea.value.substr(0, textarea.selectionStart).split("\n"); 
    var currentLineNumber = textLines.length; 
    var currentColumnIndex = textLines[textLines.length-1].length; 
    console.log("Current Line Number "+ currentLineNumber+" Current Column Index "+currentColumnIndex); 
    } 
संबंधित मुद्दे