Javascript.RU

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

Новичку нужен совет:)
Здравствуйте! Подскажите как сделать чтобы пользователь писал статью на моей страничке сайта, выделял нужный текст, нажимал нужную кнопку и в соответствии с нажатой кнопкой в текст вставлялись теги(жирный, курсив, размер текста.....) . Типо того когда пишешь новую темы в этом форуме.

Если можно, то поподробнее, пожалуйста.

Последний раз редактировалось pashaiva, 20.06.2010 в 12:49.
Ответить с цитированием
  #2 (permalink)  
Старый 20.06.2010, 13:52
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

Доставайте выделенный текст через selectionStart/selectionEnd и заменяйте их через replace таким образом:

var e = textarea, // Ссылка на текстовое поле
st = e.selectionStart, // Начало выделения
en = e.selectionEnd; // Конец выделения
e.value = e.value.replace(e.value.slice(st, en), '[b]' + e.value.slice(st, en) + '[/b]');


Для IE немного по-другому: document.selection.createRange().text возвратит выделенный текст.

Последний раз редактировалось exec, 20.06.2010 в 13:59.
Ответить с цитированием
  #3 (permalink)  
Старый 21.06.2010, 12:34
Новичок на форуме
Отправить личное сообщение для pashaiva Посмотреть профиль Найти все сообщения от pashaiva
 
Регистрация: 20.06.2010
Сообщений: 4

Я дико извиняюсь, но как это связать с текстовым полем, чтобы было при нажатии кнопки???
Ответить с цитированием
  #4 (permalink)  
Старый 21.06.2010, 12:45
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

Я же дал почти готовый код.
Ответить с цитированием
  #5 (permalink)  
Старый 21.06.2010, 12:47
Новичок на форуме
Отправить личное сообщение для pashaiva Посмотреть профиль Найти все сообщения от pashaiva
 
Регистрация: 20.06.2010
Сообщений: 4

а куда его вписывать??? И как сделать чтобы это все происходило по нажатию кнопки. Я что-то вообще не пойму.
Ответить с цитированием
  #6 (permalink)  
Старый 21.06.2010, 13:06
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

Бегом учить основы.
Ответить с цитированием
  #7 (permalink)  
Старый 21.06.2010, 15:26
Новичок на форуме
Отправить личное сообщение для pashaiva Посмотреть профиль Найти все сообщения от pashaiva
 
Регистрация: 20.06.2010
Сообщений: 4

СПАСИБО!
Ответить с цитированием
  #8 (permalink)  
Старый 21.06.2010, 19:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

))
Сообщение от exec
e.value = e.value.replace(e.value.slice(st, en), '' + e.value.slice(st, en) + '');
replace наверно тут не подойдёт нужно веть провести замену в строго определённом месте а не в первом встретившемся или похожих, но я это немножко использовал....и так зарисовка на тему вставки тегов) по мотивам форума http://javascript.ru/forum/
может кому сгодиться ...)))
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
  <title>insert_tags</title>
</head>

<body>
 <script language="JavaScript" type="text/javascript">
 function insert_tags(b) {
    var a = document.getElementsByName("message")[0],
        c = a.selectionStart,
        d = a.selectionEnd;a.focus();
    if (typeof c == "number") {
        a.value = a.value.slice(0, c) + "[" + b + "]" + a.value.slice(c, d) + "[/" + b + "]" + a.value.slice(d);
        a.setSelectionRange(b.length + c + 2, b.length + d + 2);
        a.focus()
    } else if (document.selection) {
        a = document.selection.createRange();
        c = b.length + 3;
        d = a.text.length + c;
        a.text = "[" + b + "]" + a.text + "[/" + b + "]";
        a.moveStart("character", -d);
        a.moveEnd("character", -c);
        a.select()
    }
}
 </script>
<textarea name="message" cols="30" rows="3"></textarea><br />
<input name="color" value="[color]"   onclick="insert_tags('color')" type="button"/>
<input name="color" value="[b]"   onclick="insert_tags('b')" type="button"/>
</body>

</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен совет по click(function) Jomhan jQuery 6 07.12.2013 00:41
Помогите новичку с выпадающим списком interest Элементы интерфейса 5 19.05.2010 13:15
Помоигите пожалуйста новичку xela1980 jQuery 1 22.11.2009 16:37
Нужен скрипт N98CG4 Общие вопросы Javascript 4 12.07.2009 15:54