@MdaUZH

Как заменить выделенный текст на свой?

Всем привет.

есть textarea, выделил курсором текст в нем, как будет правильно заменить его?
или же ещё лучше добавить текст в начало и в конец, самый простой пример это текстовый редактор.

выделил текст, кликнул и уже текст выглядит вот так < b> текст < /b> (

Узнать где выделенно я смогу с помощью getSelection, а вот заменить именно этот текст проблематично, и причем вставить его обратно, в тоже место где он и был..
Подскажите пожалуйста?
  • Вопрос задан
  • 1450 просмотров
Решения вопроса 2
Залил пример, попробуйте - codepen.io/anon/pen/rxKGwZ

<textarea id="text"></textarea>
<button id="go">Кнопка</button>


function replaceSelectedText(elem, str){
	elem.focus();

	if (document.selection){
		var s = document.selection.createRange(); 
		if (s.text){
			eval("s.text="+str+"(s.text);");
			s.select();
			return true;
		}
	}
	else if (typeof(elem.selectionStart) == "number"){
		if (elem.selectionStart!=elem.selectionEnd){
			var start = elem.selectionStart;
			var end = elem.selectionEnd;

			eval("var rs = "+str+"(elem.value.substr(start,end-start));");
			elem.value = elem.value.substr(0,start)+rs+elem.value.substr(end);
			elem.setSelectionRange(end,end);
		}
		return true;
	}
	return false;
}

//оборачиваем текст в нужные теги и т.д.
function change_str(s){return "<b>"+s+"</b>"}

// по клику на кнопку, выделенный текст будет заменен на текст с тегами
document.getElementById('go').onclick = function() {
	replaceSelectedText(document.getElementById('text'), 'change_str');
}
Ответ написан
@V_Tjuryakin
Перфекто
Здравствуйте. Получайте выделенный текст, так как Вы можете.
Далее вытаскиваете ВЕСЬ текст из textarea и заменяете ваш выделенный текст через метод
textAreaText.replace(выделенный текст, новый текст)

javascript.ru/string/replace
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы