Редактирование текста
Здравствуйте, разрабатываю сайт, требуется помощь по работе со строками.
Написано пару функций, есть 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("Вы забыли выделить текст !!!"); } } } |
f00rZik,
Стоит искать js функции со стандартных движков фоорумов - там это отработано десятилетиями и вместе с кнопками и оформлением обычно идёт c названием edit |
Эм.....мне не нужен готовый вариант с форума, переделывать и т.д. мне нужна именно помощь. какую функцию юзать чтобы определял не первое слово а именно то которое я выбрал )
|
Тема актуальна )
|
Дзен-трансгуманист,
Спасибо, попробывал твой код, и всё ещё хуже ) выделяю одно там вообще ппц наступает всё как попало выделяет и т.д )))) посмотрел код и понять не могу почему ) |
Часовой пояс GMT +3, время: 21:08. |