05.10.2008, 06:30
|
Новичок на форуме
|
|
Регистрация: 05.10.2008
Сообщений: 4
|
|
текст в textarea
Здравствуйте , помогите разобраться со вставкой текста .
В общем есть поле textarea и как на любом другом форуме ,есть кнопки для вставки тегов , по нажатию кнопки в поле появляются теги к примеру <b></b> , но если установить курсор между этими тегами и нажать на кнопку , то добавляться новые теги будут в конец строки . Вопрос как сделать , чтоб теги добавлялись в место указаное курсором . Я в javascript неселён , прошу объяснить попонятнее , а если можно , то статью почитать . Заранее спасибо .
|
|
05.10.2008, 21:34
|
Кандидат Javascript-наук
|
|
Регистрация: 07.09.2008
Сообщений: 133
|
|
кстати интересный вопрос.. если кто знает простое решение поделитесь)
|
|
06.10.2008, 11:26
|
|
Профессор
|
|
Регистрация: 06.05.2008
Сообщений: 765
|
|
Есть уже написанные скрипты, поищите.
В разных браузерах работает по разному, так что задачка не тривиальна.
Или откройте любой (ну или почти любой) форум, посмотрите, работает ли вставка так, как вам надо и посмотрите какими скриптами это реализовано.
В общих словах - берете координаты выделенного текста (это как-раз в разных браузерах по разному), меняете строку с учетом координат (куда вы хотите вставить теги).
Последний раз редактировалось Snipe, 06.10.2008 в 11:33.
|
|
06.10.2008, 14:54
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
|
|
06.10.2008, 16:34
|
Новичок на форуме
|
|
Регистрация: 05.10.2008
Сообщений: 4
|
|
В общем , за эти выходные , я просмотрел кучу матерьала и пришёл к выводу , что для моей задачи проще оставить textarea в голом виде , без вставки тегов , но сказать пользователю , что некоторые доступны , а при обработке разрешить некоторые теги и смотреть , как их применяли , к сожалению для меня это проще , чем написать редактор , ну а если невтерпёж будет , то как сказал Snipe , воспользоваться готовым online редактором . Всем спасибо за помощ .
|
|
07.10.2008, 13:24
|
-
|
|
Регистрация: 16.07.2008
Сообщений: 207
|
|
|
|
17.11.2008, 12:38
|
|
По-моему то, что нужно:
<html>
<script>
function clc(){
var el=document.getElementById("area");
el.focus();
if (el.selectionStart==null){
var rng=document.selection.createRange();
rng.text="<b>"+rng.text+"</b>"
}
else{
el.value=el.value.substring(0,el.selectionStart)+
"<b>"+
el.value.substring(el.selectionStart,el.selectionEnd)+
"</b>"+
el.value.substring(el.selectionEnd);
}
}
</script>
<body>
<textarea id="area" rows="20" cols="100">
text text text
</textarea>
<br />
<button onclick="clc()">Click</button>
</body>
</html>
Последний раз редактировалось Андрей Параничев, 17.11.2008 в 16:53.
Причина: Пользуйтесь bb-кодами [js] и [html] для оформления листингов кода в теле сообщения
|
|
18.05.2010, 19:55
|
Интересующийся
|
|
Регистрация: 26.03.2010
Сообщений: 27
|
|
А как вставлять не в textarea, а в
<div contentEditable="true"></div>
?
value там нет(
Последний раз редактировалось m-mikle, 18.05.2010 в 20:01.
Причина: Уточнил
|
|
18.05.2010, 20:54
|
|
Новичок на форуме
|
|
Регистрация: 21.03.2010
Сообщений: 7
|
|
innerHTML
Последний раз редактировалось TaskO, 18.05.2010 в 20:56.
Причина: Не просмотрел первый пост
|
|
18.05.2010, 20:56
|
Интересующийся
|
|
Регистрация: 26.03.2010
Сообщений: 27
|
|
Я сейчас так и пытаюсь, но как вставить именно туда, где курсор?
|
|
|
|