एक जावास्क्रिप्ट फ़ंक्शन .setSelectionRange() का उपयोग करके टेक्स्टरेरा में एक निश्चित शब्द का चयन करता है। फ़ायरफ़ॉक्स में, टेक्स्टरेरा स्वचालित रूप से चयनित टेक्स्ट दिखाने के लिए नीचे स्क्रॉल करता है। क्रोम में (v14), यह नहीं है। क्या क्रोम को टेक्स्टएरा को नए चुने हुए पाठ पर स्क्रॉल करने का कोई तरीका है? jQuery समाधान स्वागत है।जावास्क्रिप्ट: Chromearea.setSelectionRange का उपयोग करने के बाद चयन करने के लिए स्क्रॉल करें क्रोम में
उत्तर
यहाँ एक सरल और कुशल समाधान, शुद्ध js है:
//first of all, you ignore any bad english, as i'm french and had a funny evening
//get the textarea
var textArea = document.getElementById('myTextArea');
//define your selection
var selectionStart = 50;
var selectionEnd = 60;
textArea.setSelectionRange(selectionStart, selectionEnd);
// now lets do some math
// we need the number of chars in a row
var charsPerRow = textArea.cols;
// we need to know at which row our selection starts
var selectionRow = (selectionStart - (selectionStart % charsPerRow))/charsPerRow;
// we need to scroll to this row but scrolls are in pixels,
// so we need to know a row's height, in pixels
var lineHeight = textArea.clientHeight/textArea.rows;
// scroll !!
textArea.scrollTop = lineHeight * selectionRow;
एक समारोह में इस रखो, इसके साथ जावास्क्रिप्ट का तत्व वस्तु के प्रोटोटाइप का विस्तार, और आप अच्छा कर रहे हैं।
यह पूछने के लिए स्वतंत्र महसूस करें कि आपको और सहायता चाहिए या नहीं।
आप देख सकते हैं कि हमने in ProveIt समस्या को हल किया है (देखें LightLengthAtIndex)। असल में, चाल textarea को छोटा करने के लिए है, अंत तक स्क्रॉल करें, फिर पाठ के दूसरे भाग को पुनर्स्थापित करें। हमने निरंतर क्रॉस-ब्राउज़र व्यवहार के लिए टेक्स्ट चयन प्लगइन का भी उपयोग किया।
मैं यहाँ एक जवाब प्रकाशित:
http://blog.blupixelit.eu/scroll-textarea-to-selected-word-using-javascript-jquery/
यह सिर्फ एक जरूरत शासन के साथ पूरी तरह से काम करता है: पंक्ति-ऊंचाई n पाठ क्षेत्र के सीएसएस सेट करें!
यह कुछ सरल गणितीय गणना करके स्क्रॉल करने के लिए शब्द की स्थिति की गणना करता है और यह मेरे सभी प्रयोगों में पूरी तरह से काम करता है!
मुझे कोड के बारे में कुछ भी पूछने के लिए स्वतंत्र महसूस करें!
की जांच कर रहा हूं, जबकि यह लिंक प्रश्न का उत्तर दे सकता है, यहां उत्तर के आवश्यक हिस्सों को शामिल करना बेहतर है और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक किए गए पृष्ठ में परिवर्तन होने पर लिंक-केवल उत्तर अमान्य हो सकते हैं। –
यह मैथ्यू फ्लैंचन के answer से प्रेरित एक कोड है।
/**
* Scroll textarea to position.
*
* @param {HTMLInputElement} textarea
* @param {Number} position
*/
function scrollTo(textarea, position) {
if (!textarea) { return; }
if (position < 0) { return; }
var body = textarea.value;
if (body) {
textarea.value = body.substring(0, position);
textarea.scrollTop = position;
textarea.value = body;
}
}
असल में, चाल पाठ क्षेत्र छोटा करना, अंत तक स्क्रॉल, तो पाठ के दूसरे भाग बहाल करना है।
रूप
var textarea, start, end;
/* ... */
scrollTo(textarea, end);
textarea.focus();
textarea.setSelectionRange(start, end);
इस प्रकार इसका इस्तेमाल
यह समझ में नहीं आता है कि परिवर्तनीय 'स्थिति' दोनों को एक सबस्ट्रिंग इंडेक्स के रूप में उपयोग किया जाता है, और scrollTop के लिए जो पिक्सल लेता है। –
//Complete code for chrome
वर एसएआर = {};
SAR.find = function() {
debugger;
var parola_cercata = $("#text_box_1").val(); // the searched word
// make text lowercase if search is supposed to be case insensitive
var txt = $('#remarks').val().toLowerCase();
parola_cercata = parola_cercata.toLowerCase();
var posi = jQuery('#remarks').getCursorPosEnd(); // take the position of the word in the text
var termPos = txt.indexOf(parola_cercata, posi);
if (termPos !== -1) {
debugger;
var target = document.getElementById("remarks");
var parola_cercata2 = $("#text_box_1").val();
// select the textarea and the word
if (target.setSelectionRange) {
if ('selectionStart' in target) {
target.selectionStart = termPos;
target.selectionEnd = termPos;
this.selectionStart = this.selectionEnd = target.value.indexOf(parola_cercata2);
target.blur();
target.focus();
target.setSelectionRange(termPos, termPos + parola_cercata.length);
}
} else {
var r = target.createTextRange();
r.collapse(true);
r.moveEnd('character', termPos + parola_cercata);
r.moveStart('character', termPos);
r.select();
}
} else {
// not found from cursor pos, so start from beginning
termPos = txt.indexOf(parola_cercata);
if (termPos !== -1) {
var target = document.getElementById("remarks");
var parola_cercata2 = $("#text_box_1").val();
// select the textarea and the word
if (target.setSelectionRange) {
if ('selectionStart' in target) {
target.selectionStart = termPos;
target.selectionEnd = termPos;
this.selectionStart = this.selectionEnd = target.value.indexOf(parola_cercata2);
target.blur();
target.focus();
target.setSelectionRange(termPos, termPos + parola_cercata.length);
}
} else {
var r = target.createTextRange();
r.collapse(true);
r.moveEnd('character', termPos + parola_cercata);
r.moveStart('character', termPos);
r.select();
}
} else {
alert("not found");
}
}
};
$.fn.getCursorPosEnd = function() {
var pos = 0;
var input = this.get(0);
// IE Support
if (document.selection) {
input.focus();
var sel = document.selection.createRange();
pos = sel.text.length;
}
// Firefox support
else if (input.selectionStart || input.selectionStart === '0')
pos = input.selectionEnd;
return pos;
};
</script>
मेरे लिए बहुत f9 काम करता है कृपया शब्द खोज के लिए textarea पर स्क्रॉल करने के लिए हल समस्या को जांचें और वापस करें –
- 1. एकाधिक विकल्पों का चयन करने के लिए जावास्क्रिप्ट
- 2. छवि को फसल करने के लिए जावास्क्रिप्ट का उपयोग करें
- 3. एक टेक्स्टबॉक्स में सभी टेक्स्ट हाइलाइट करने के लिए jQuery का चयन करें (चयन करें)
- 4. एचटीएमएल/जावास्क्रिप्ट: स्क्रीन रोटेशन के बाद स्क्रॉल स्थिति ठीक करें
- 5. एक्स्टजेस में कक्षा का चयन करने के लिए Jquery $ ("। कुछ") का उपयोग कैसे करें?
- 6. मैं छवि के केंद्र में स्क्रॉल करने के लिए scrollRectToVisible का उपयोग कैसे कर सकता हूं?
- 7. एनीमेशन के साथ स्क्रॉल करने के लिए
- 8. एक विकल्प का चयन करें बॉक्स का चयन रद्द करने के लिए कैसे के बाद कुछ गणना
- 9. elementFromPoint पृष्ठ को स्क्रॉल करने के बाद शून्य लौटाता है
- 10. Velocity में string.split का उपयोग करने के बाद सरणी के तत्वों का उपयोग कैसे करें?
- 11. स्क्रॉल के फ़्लिंग को अक्षम करने के लिए कैसे करें
- 12. सूची नीचे स्क्रॉल करने के बाद QListWidget खींचें
- 13. एचटीएमएल चयन बॉक्स में दिखाने के लिए अधिकतम मात्रा में सेट करने के लिए कैसे करें
- 14. iframe ऊपर और नीचे स्क्रॉल करने के लिए जावास्क्रिप्ट का उपयोग
- 15. SQL सर्वर - परिणाम सेट के शीर्ष एक्स का चयन करने के लिए पैरामीटर का उपयोग करें
- 16. फ़ाइल का चयन करने के लिए फ़ाइल ब्राउज़र चुनने के इरादे का उपयोग कैसे करें
- 17. जेड फ्रेमवर्क का चयन करने के लिए IF के साथ सामान्य एसक्यूएल का चयन कैसे करें?
- 18. सबमिट करने के बाद अभी भी चयन में डिफ़ॉल्ट मान
- 19. MySQL स्प्लिट में उपयोग करने के लिए "का चयन करें जहां में" बयान
- 20. जावास्क्रिप्ट कोड क्रोम ब्राउज़र में एचटीएमएल पेज खोलने के लिए मजबूर करने के लिए?
- 21. कस्टम सत्यापन के बाद जावास्क्रिप्ट के साथ ASP.NET सबमिट करने के लिए कैसे करें
- 22. जावास्क्रिप्ट में क्रोम में सिस्टम प्रिंट संवाद का उपयोग करें
- 23. चयन के बाद HTML डालें
- 24. जावास्क्रिप्ट को स्वच्छ करने के लिए काजा का उपयोग करना?
- 25. सीएसएस ढाल संपादित करने के लिए जावास्क्रिप्ट का उपयोग
- 26. शेर पर रीफ्रेश करने के लिए स्क्रॉल करें
- 27. क्रोम में उपयोगकर्ता स्क्रिप्ट को डिबग करने के लिए विधि
- 28. छवियों को मुद्रित करने के लिए जावास्क्रिप्ट का उपयोग
- 29. फ्लास्क में उपयोग करने के लिए गतिशील रूप से टेम्पलेट निर्देशिका का चयन कैसे करें?
- 30. UITableView "अपडेट करने के लिए नीचे स्क्रॉल करें"
यह सही है। धन्यवाद! – hamboy
'charsPerRow' तर्क लाइन ब्रेक को अनदेखा करता है, नरम (शब्दों के बीच लपेटना) और हार्ड (वास्तविक न्यूलाइन) दोनों। –
आप बिल्कुल सही हैं! मैं वर्तमान में आपके समाधान –