Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.145.115.195] |
|
Сообщ.
#1
,
|
|
|
ранее для выборочного форматирования текста в форме я использовал textarea (как и на этом сайте), но оказалось что в textarea нельзе изображать техт в формате HTML мне посоветовали использовать редактируемый div но теперь перестал работать скрипт:
ошибка возникает в переменной textBox пример вызова: <A href="javascript:paste('[b]','[/b]')"><B>[b]</B></A> function paste(t1,t2,id_baseText) { var textBox = eval('document.PageForm.'+id_baseText); if (true) { if (document.selection) { textBox.focus(); var txt = textBox.value; var str = document.selection.createRange(); if (str.text == "") { str.text = t1 + t2; } else if (txt.indexOf(str.text)>=0) { str.text = t1 + str.text + t2; } else { textBox.value = txt + t1 + t2; } } } else { textBox.value = textBox.value + t1 + t2; } Вопрос в следующем как этот код переделать для DIV, окончательно задача заключается в следующем: пользователь выделяет в тексте ограниченном DIV слово нажимает например <b> и слово становится жирным |
Сообщ.
#2
,
|
|
|
Господа ну не уже ли никто не знает как найти выделенное слово в <div> а затем добавить к нему теги?
|
Сообщ.
#3
,
|
|
|
Radimir,
е торопись - тут не так быстро броблемы решаются ЗЫ а я незнаю |
Сообщ.
#4
,
|
|
|
Похожая тема была, по-моему, вот здесь - Доступ к выделенному тексту
|
Сообщ.
#5
,
|
|
|
Да видел я эту тему, если использовать textarea то и в моем скрипте все нормально работает, там ведь все просто:
находим объект textarea; var textBox = eval('document.PageForm._ctl0__ctl0__ctl0_txtMessage'); далее находим выделенное слово var str = document.selection.createRange(); блин а что если выбрость не работающие части и оставить работающие: if (str.text == "") {str.text = t1 + t2; } else if (txt.indexOf(str.text)>=0) { str.text = t1 + str.text + t2; а вот это все выбросить? document.selected textBox.focus(); var txt = textBox.value; } else { textBox.value = txt + t1 + t2; Добавлено в : Люды вы что вымерли чтоль есть мысли то? |
Сообщ.
#6
,
|
|
|
Пятница же, все леняться
|
Сообщ.
#7
,
|
|
|
Ну дак что товарисссчии дарагие может кто кинет мысль?
|
Сообщ.
#8
,
|
|
|
TextRange Лучше всего создавать по событию onmouseup
<div id=editor onmouseup='ran=document.selection.createRange()'> qwerty </div> <a href=# onclick='paste("[b]","[b]")' style='font-weight:bold'>[b]</a> <script> <!-- var ran; function paste(t1,t2) { if (typeof ran !='undefined') { if (ran.text == "") ran.text = t1 + t2; else ran.text = t1 + ran.text + t2; } } //--> </SCRIPT> |
Сообщ.
#9
,
|
|
|
Ясно а как сделать чтобы у пользователя на экране сразу HTML изображался т.е. не <b>слово</b> сразу сконвертировал его в HTML
|
Сообщ.
#10
,
|
|
|
Можно так. Можно ещё как-нить поэксперементировать...
[html]<div id=editor onmouseup='ran=document.selection.createRange()'> qwerty </div> <a href=# onclick='paste("<b>","</b>")' style='font-weight:bold'>[b]</a> <script> <!-- var ran; function paste(t1,t2) { if (typeof ran !='undefined') { if (ran.text == "") ran.text = t1 + t2; else ran.text = t1 + ran.text + t2; } document.getElementById('editor').innerHTML = document.getElementById('editor').outerText; } //--> </SCRIPT>[/html] |
Сообщ.
#11
,
|
|
|
Благодарствую щас заценю!
|
Сообщ.
#12
,
|
|
|
Всегда please
|