Вверх ↑
Этот топик читают: Гость
Ответов: 446
Рейтинг: 7
#1: 2007-10-27 01:09:40 ЛС | профиль | цитата
Javascript не знаю, поэтому не знаю как это обычно реализовывается. Собственно, как? На ум могу только придумать визуальный редактор на Ajax, вроде просто обрабатывать команды на сервере и выдавать отформатированный результат, а так что бы без запроса к серверу, возможно?

------------ Дoбавленo:

Вобщем, поскольку никто не откликнулся ответом на вопрос, приходится отвечать самому!
Делается это через тег <div> так как он имеет точку doHTML.
Схема которую я набросал выглядит так:

#sha
Add(HtmlEntryPoint,8298989,189,147)
{
link(onStart,2442983:doEvent,[])
}
Add(MultiElement,1975184,441,161)
{
}
BEGIN_SDK
Add(EditMulti,5705632,21,21)
{
WorkCount=1
Width=853
Height=480
link(doWork1,8111362:doStrCat,[(126,27)(126,241)])
}
Add(DoData,3592820,371,238)
{
link(onEventData,2959133:doHTML,[])
link(Data,9274821:Result,[(377,223)(335,223)(335,279)(300,279)])
}
Add(HTM_Div,2959133,434,231)
{
Id="body"
Point(doHTML)
}
Add(TAG_InnerHTML,16215592,252,161)
{
link(Id,13338462:ObjectId,[(258,144)(272,144)])
link(Text,13338462:innerHTML,[])
}
Add(StrCat,9274821,294,235)
{
link(onStrCat,3592820:doData,[(345,241)(345,244)])
link(Str1,8111362:Result,[(300,223)(268,223)(268,279)(237,279)])
link(Str2,13127854:Text,[(307,200)(391,200)])
}
Add(VisualText,13127854,385,154)
{
Lines=#4:</b>|
Width=74
Height=25
Point(Text)
}
Add(StrCat,8111362,231,235)
{
link(onStrCat,9274821:doStrCat,[])
link(Str1,7245906:Text,[(237,203)(146,203)])
link(Str2,16215592:InnerHTML,[(244,214)(258,214)])
}
Add(VisualText,7245906,140,154)
{
Lines=#3:<b>|
Width=74
Height=25
Point(Text)
}
Add(HTM_Div,13338462,259,95)
{
Id="body"
Point(doHTML)
Point(ObjectId)
}
END_SDK
Add(HTM_Submit,16443057,350,147)
{
Point(onClick)
Point(onMouseDown)
link(onMouseDown,1975184:doWork1,[])
}
Add(Hub,2442983,259,147)
{
link(onEvent1,16443057:doPrint,[])
link(onEvent2,13338462:doPrint,[(324,160)(324,216)])
}
Add(HTM_Div,13338462,350,210)
{
Style="width: 500 px; height: 300 px; background: silver; border-style: solid; border-width: 1 px"
Id="body"
Point(Object)
Point(doHTML)
}

по нажатию кнопки весь текст становится жирным, как с тегом <b>. Пример действует только в одну сторону, т.е. обратное преобразование не производит.
Да, чуть не забыл. Что бы пример заработал нужно внести изменения непосредственно в html файл.
в свойства единственного тега div необходимо внести такую строчку: contenteditable="true" сразу перед id="body"
Это необходимо для возможности редактирования области.
Этот пример я привел дабы не быть голословным и показать что мои извилины хоть немного, да кривые.
Собственно, теперь вопрос к знатокам пакета web! В правильную сторону я мыслю? Как правильно производить замену, а не слепление тега и текста.
Самый важный вопрос: Как применять подобную замену к выделенному тексту??? и не менее важный как снимать ее?
Да, пример можно глянуть здесь:http://stasie.2ru.name/
------------ Дoбавленo:

Кстати, Dilma, эта жирность в сообщении - глюк. видимо в коде у меня есть теги и он как то их прочитал!
карма: 0
Время верстки: Текущее время: %time%
0
vip
#1.1контекстная реклама от партнеров
Администрация
Ответов: 15294
Рейтинг: 1518
#2: 2007-10-27 01:22:14 ЛС | профиль | цитата
Через такую комбинацию:

#sha
Add(Document,14725283,105,133)
{
}
Add(TextRange,4856270,105,182)
{
link(Object,14725283:Selection,[])
}
можно получить и установить выделенную на странице часть текста
карма: 26
0
Ответов: 446
Рейтинг: 7
#3: 2007-10-27 10:15:31 ЛС | профиль | цитата
так вот как это делается??? А я смотрел на эти компоненты, смотрел, так и не получилось у меня их связать. А вообще справки по javaScript хочется побольше.
Dilma, спасибо.

------------ Дoбавленo:


И еще. А с заменой правильно или нужно использовать компонент "Конструктор строки". Я с ним пробовал - не работает???
карма: 0
Время верстки: Текущее время: %time%
0
Администрация
Ответов: 15294
Рейтинг: 1518
#4: 2007-10-27 13:51:20 ЛС | профиль | цитата
Stasie, твой контейнер с использование StringBuilder сворачивается всего в два элемента:
code_7477.txt

------------ Дoбавленo:

То бишь если все связать то получится так:
карма: 26
0
файлы: 2code_7477.txt [491B] [435], div_editor.sha [1.2KB] [473]
Ответов: 446
Рейтинг: 7
#5: 2007-10-27 22:37:24 ЛС | профиль | цитата
не работает... думаю!
карма: 0
Время верстки: Текущее время: %time%
0
Администрация
Ответов: 15294
Рейтинг: 1518
#6: 2007-10-27 23:43:34 ЛС | профиль | цитата
что не работает У меня все работает. Однако жирным выделенный кусок естественно не становится. Поскольку это только экранная замена текста.
карма: 26
0
6
Сообщение
...
Прикрепленные файлы
(файлы не залиты)