Объект TextRange: получить выделенный и текст рядом.
Всем добрый день и с Наступающим Новым Годом!
Просьба помочь с решением. Есть текстареа. Мне нужно, по событию (нажатие кнопки) получить объект, где будет три элемента, содержащие: выделенный текст, текст до выделения, текст после выделения. при этом текст до и после нужно из оригинального текстареа удалить. Буду благодарен за ответы и, особенно, если поделитесь какими-нибудь еще черновыми функциями/наработками для подобных дел. Раньше с текстом не работал, своего ничего нет. Спасибо. |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Document</title> <meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui"> </head> <body> <textarea id="test" cols="30" rows="10">Привет!!! У textarea есть свойства selectionStart/selectionEnd, которые позволяют узнать позицию выделенного текста!</textarea><br> <button onclick="getParts(); ">Выдели часть текста и нажми</button> <div id="result"></div> <script> function getParts() { var textarea = document.getElementById("test"); var resultElement = document.getElementById("result"); var html = []; html.push("Выделены символы: ".bold() + textarea.selectionStart + "\u2026" + textarea.selectionEnd); html.push("Текст до выделения: ".bold() + textarea.value.slice(0, textarea.selectionStart)); html.push("Выделенный текст: ".bold() + textarea.value.slice(textarea.selectionStart, textarea.selectionEnd)); html.push("Текст после: ".bold() + textarea.value.slice(textarea.selectionEnd)); textarea.value = "Было выделено: " + textarea.value.slice(textarea.selectionStart, textarea.selectionEnd); resultElement.innerHTML = html.join("<hr>") } </script> </body> </html> |
Спасибо!
|
Часовой пояс GMT +3, время: 14:53. |