Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.09.2012, 22:12
Интересующийся
Отправить личное сообщение для f00rZik Посмотреть профиль Найти все сообщения от f00rZik
 
Регистрация: 05.01.2012
Сообщений: 10

Редактирование текста
Здравствуйте, разрабатываю сайт, требуется помощь по работе со строками.
Написано пару функций, есть textarea в ней написан текст, когда человек выделяет часть текста, можно кликнуть по стилям и добавить их. например bold (жирный) и сразу-же выводится в контейнере (динамически)
Есть проблема в функции, если в textarea введено несколько одинаковых слов, и одно из них выделено, любое. То когда человек хочет сделать его жирным или наоборот убрать жирный, функция делает это только с первым словом в строке, как сделать, чтобы работало с тем словом которое человек выделил ? например
Код:
www.domen.ru - ваш сайт www.domen.ru находится в топовых позициях. я выделю второй в строке домен, а функция всё равно обратиться к первому.
Прошу помощи

function replaceSelectionFragment(id) {
  var d=document,a=d.getElementById(strnum),w=window,b;
  
  if (a&&a.value) { // если передаем элемент, и у него есть value
  b = a.value.substring(a.selectionStart, a.selectionEnd);
  if(b !=''){
  
  if(id=='bold'){
		var phrase = b;
		var src = $("#draggable"+strdrag+" span").html();
		var re = new RegExp ('<b>.*?'+phrase+'.*?<\/b>');
		alert(src.search(re));
var res = src.match(re);
if(res!=null) {
	var replacement = "</b>"+phrase+"<b>";
	//alert(src+" --- "+phrase+" есть b");
} else {
	var replacement = "<b>"+phrase+"</b>";
	//alert(src+" --- "+phrase+" нет b");
}
		
		
		//$("#"+strnum).html($("#"+strnum).html().replace(phrase, replacement));
		
		$("#draggable"+strdrag).html(
			$("#draggable"+strdrag).html().replace(phrase, replacement)
		);
		//alert(b+"<b>---asd</b>");
		
  }
  }else{
  alert("Вы забыли выделить текст !!!");
}
}
}
Ответить с цитированием
  #2 (permalink)  
Старый 02.09.2012, 22:40
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

f00rZik,
Стоит искать js функции со стандартных движков фоорумов - там это отработано десятилетиями и вместе с кнопками и оформлением обычно идёт c названием edit

Последний раз редактировалось Deff, 02.09.2012 в 22:43.
Ответить с цитированием
  #3 (permalink)  
Старый 02.09.2012, 22:44
Интересующийся
Отправить личное сообщение для f00rZik Посмотреть профиль Найти все сообщения от f00rZik
 
Регистрация: 05.01.2012
Сообщений: 10

Эм.....мне не нужен готовый вариант с форума, переделывать и т.д. мне нужна именно помощь. какую функцию юзать чтобы определял не первое слово а именно то которое я выбрал )
Ответить с цитированием
  #4 (permalink)  
Старый 02.09.2012, 23:51
Интересующийся
Отправить личное сообщение для f00rZik Посмотреть профиль Найти все сообщения от f00rZik
 
Регистрация: 05.01.2012
Сообщений: 10

Тема актуальна )
Ответить с цитированием
  #5 (permalink)  
Старый 03.09.2012, 15:25
Интересующийся
Отправить личное сообщение для f00rZik Посмотреть профиль Найти все сообщения от f00rZik
 
Регистрация: 05.01.2012
Сообщений: 10

Дзен-трансгуманист,
Спасибо, попробывал твой код, и всё ещё хуже ) выделяю одно там вообще ппц наступает всё как попало выделяет и т.д )))) посмотрел код и понять не могу почему )
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Редактирование и сохранение текста begin29 Элементы интерфейса 7 10.07.2012 21:18
Редактирование текста WoW-rotfl AJAX и COMET 10 07.06.2012 15:03
Как запретить отмену выделения текста от клика мышью? Маэстро Internet Explorer 0 03.04.2012 21:21
Чудеса математики js при padding borovik Элементы интерфейса 6 09.07.2011 22:02
Получение позиции текста по координатам traa Events/DOM/Window 20 08.02.2011 14:19