दिलचस्प पोस्ट
जावास्क्रिप्ट – एक अन्य सरणी के आधार पर क्रमबद्ध सरणी क्या लूप के लिए विभिन्न प्रकार के दो चर को घोषित करना संभव है? जावास्क्रिप्ट / jQuery में (ई) क्या मतलब है? वाई-फाई प्रत्यक्ष परिदृश्य में प्रत्येक उपकरण का आईपी पता कैसे प्राप्त करें? एक वैध फ़ाइल नाम में एक स्ट्रिंग चालू करें? नेटवर्क साझा ड्राइव पर फ़ाइल की प्रतिलिपि बनाएँ भ्रम: @ नॉट नोल बनाम @ कॉलम (नाले = झूठे) LINQ: डायनामिक चयन करें जांचें कि क्या कोई छवि लोड की गई है (कोई त्रुटि नहीं) JavaScript में IF-ELSE और SWITCH के बीच अंतर क्या है? सभी पिछली गतिविधियों को समाप्त करें कैसे एक Redux स्टोर की स्थिति को रीसेट करें? रूबी फ़्लोटिंग बिंदु त्रुटियाँ फ़ॉन्ट-फेस लोड नहीं किया गया SendInput और 64bits

आप टेक्स्टरिए में कर्सर की स्थिति कैसे प्राप्त करते हैं?

मेरे पास एक टेक्सटेरा है और मैं जानना चाहूंगा कि क्या मैं टेक्स्टरेया में अंतिम पंक्ति या पाठ कर्ता में पहली पंक्ति में जावास्क्रिप्ट के साथ अपने कर्सर के साथ हूं।

मैं पहली नयी पंक्ति और अंतिम नए रेखा के चरित्र की स्थिति को हथियाने और फिर कर्सर की स्थिति को हथियाने के बारे में सोचा था।

var firstNewline = $('#myTextarea').val().indexOf('\n'); var lastNewline = $('#myTextarea').val().lastIndexOf('\n'); var cursorPosition = ?????; if (cursorPosition < firstNewline) // I am on first line. else if (cursorPosition > lastNewline) // I am on last line. 
  • क्या पाठ के भीतर कर्सर की स्थिति को पकड़ना संभव है?
  • क्या आपके पास यह पता लगाने के लिए बेहतर सुझाव है कि क्या मैं पाठयरे की पहली या अंतिम पंक्ति पर हूं?

jQuery समाधान पसंदीदा जब तक जावास्क्रिप्ट के रूप में सरल या सरल है

किसी भी प्रकार की मदद की बेहद सराहना की जाती है।

वेब के समाधान से एकत्रित समाधान "आप टेक्स्टरिए में कर्सर की स्थिति कैसे प्राप्त करते हैं?"

यदि कोई चयन नहीं है, तो आप गुणों का उपयोग कर सकते हैं। चयन चयन या .selectionEnd (कोई चयन के साथ वे बराबर हैं)

 var cursorPosition = $('#myTextarea').prop("selectionStart"); 

ध्यान दें कि यह पुराने ब्राउज़रों में समर्थित नहीं है, सबसे खासकर IE8-। वहां आपको पाठ श्रेणियों के साथ काम करना होगा, लेकिन यह एक पूर्ण निराशा है

मेरा मानना ​​है कि कहीं कोई लाइब्रेरी है जो इनपुट तत्वों में चयन / कर्सर पदों को प्राप्त करने और सेट करने के लिए समर्पित है, हालांकि। मैं अपना नाम नहीं याद कर सकता, लेकिन इस विषय के बारे में लेखों पर दर्जनों लगते हैं।

मैंने इस पर एक निष्पक्ष काम किया है और स्टैक ओवरफ्लो पर टेक्सरेस में कैरेट / चयन की स्थिति पाने के लिए एक फ़ंक्शन पोस्ट किया है। ऐसा करने के लिए बहुत ज्यादा हर दूसरे कोड के विपरीत, यह IE <9 में लाइन ब्रेक के साथ ठीक से काम करता है

यहां कुछ पृष्ठभूमि के साथ एक उदाहरण प्रश्न है:

क्या चयनकर्ता और चयन के लिए एक इंटरनेट एक्सप्लोरर को स्वीकृत विकल्प है?

और यहां एक jQuery प्लग-इन के लिए एक लिंक है मैंने लिखा है कि इस फ़ंक्शन और अन्य चयन से संबंधित टेक्स्टरेया फ़ंक्शंस शामिल हैं:

https://github.com/timdown/rangyinputs

यहां एक क्रॉस ब्राउज़र फ़ंक्शन है जो मेरे मानक पुस्तकालय में है I

 function getCursorPos(input) { if ("selectionStart" in input && document.activeElement == input) { return { start: input.selectionStart, end: input.selectionEnd }; } else if (input.createTextRange) { var sel = document.selection.createRange(); if (sel.parentElement() === input) { var rng = input.createTextRange(); rng.moveToBookmark(sel.getBookmark()); for (var len = 0; rng.compareEndPoints("EndToStart", rng) > 0; rng.moveEnd("character", -1)) { len++; } rng.setEndPoint("StartToStart", input.createTextRange()); for (var pos = { start: 0, end: len }; rng.compareEndPoints("EndToStart", rng) > 0; rng.moveEnd("character", -1)) { pos.start++; pos.end++; } return pos; } } return -1; } 

इसे इस तरह अपने कोड में प्रयोग करें:

 var cursorPosition = getCursorPos($('#myTextarea')[0]) 

यहां इसका पूरक कार्य है:

 function setCursorPos(input, start, end) { if (arguments.length < 3) end = start; if ("selectionStart" in input) { setTimeout(function() { input.selectionStart = start; input.selectionEnd = end; }, 1); } else if (input.createTextRange) { var rng = input.createTextRange(); rng.moveStart("character", start); rng.collapse(); rng.moveEnd("character", end - start); rng.select(); } } 

http://jsfiddle.net/gilly3/6SUN8/

पंक्ति संख्या और स्तंभ स्थिति प्राप्त करने के लिए यहां कोड है

 function getLineNumber(tArea) { return tArea.value.substr(0, tArea.selectionStart).split("\n").length; } function getCursorPos() { var me = $("textarea[name='documenttext']")[0]; var el = $(me).get(0); var pos = 0; if ('selectionStart' in el) { pos = el.selectionStart; } else if ('selection' in document) { el.focus(); var Sel = document.selection.createRange(); var SelLength = document.selection.createRange().text.length; Sel.moveStart('character', -el.value.length); pos = Sel.text.length - SelLength; } var ret = pos - prevLine(me); alert(ret); return ret; } function prevLine(me) { var lineArr = me.value.substr(0, me.selectionStart).split("\n"); var numChars = 0; for (var i = 0; i < lineArr.length-1; i++) { numChars += lineArr[i].length+1; } return numChars; } 

tArea पाठ क्षेत्र DOM तत्व है

getCursorPos () फ़ंक्शन GWT में कर्सर की स्थिति वापस करेगा

  TextArea content = new TextArea(); content.getCursorPos();