Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.12.2016, 05:40
Интересующийся
Отправить личное сообщение для xbit Посмотреть профиль Найти все сообщения от xbit
 
Регистрация: 08.03.2016
Сообщений: 25

Объект TextRange: получить выделенный и текст рядом.
Всем добрый день и с Наступающим Новым Годом!

Просьба помочь с решением.

Есть текстареа. Мне нужно, по событию (нажатие кнопки) получить объект, где будет три элемента, содержащие: выделенный текст, текст до выделения, текст после выделения. при этом текст до и после нужно из оригинального текстареа удалить.

Буду благодарен за ответы и, особенно, если поделитесь какими-нибудь еще черновыми функциями/наработками для подобных дел. Раньше с текстом не работал, своего ничего нет.

Спасибо.

Последний раз редактировалось xbit, 31.12.2016 в 08:38.
Ответить с цитированием
  #2 (permalink)  
Старый 31.12.2016, 09:24
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

<!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>

Последний раз редактировалось Malleys, 31.12.2016 в 10:47.
Ответить с цитированием
  #3 (permalink)  
Старый 31.12.2016, 10:21
Интересующийся
Отправить личное сообщение для xbit Посмотреть профиль Найти все сообщения от xbit
 
Регистрация: 08.03.2016
Сообщений: 25

Спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема со scroll Chrome Элементы интерфейса 2 21.10.2013 14:46
прогкрутка к якорям cOAPerator Общие вопросы Javascript 20 27.08.2013 03:30
Резиновые дивы с прокруткой Java Script Mary-Jay Элементы интерфейса 10 24.07.2013 17:51
Вопрос: И опять про offsetLeft... sigurd Общие вопросы Javascript 11 04.10.2010 14:06
На входе HTML получить на выходе просто текст, как? Dmitry Общие вопросы Javascript 2 25.08.2008 10:42