Редактирование текста
Здравствуйте, разрабатываю сайт, требуется помощь по работе со строками.
Написано пару функций, есть 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, время: 05:03. |