Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: Boxa от 23 Мая 2006, 14:54:18

Название: textarea и редактирование текста
Отправлено: Boxa от 23 Мая 2006, 14:54:18
Народ, возник тупик.

Мне надо в textarea вывести текст. Но удалять слова/фразы/символы etc. которые там уже существуют НЕЛЬЗЯ, а дописать новые можно. Как быть, какие есть решения/алгоритмы?
Название: textarea и редактирование текста
Отправлено: CGVictor от 23 Мая 2006, 16:15:19
Boxa
???
Чем не устраивает textarea.value+=\'text\' ?
Название: textarea и редактирование текста
Отправлено: 0b0rm0t от 23 Мая 2006, 16:19:24
Вывести --- программно или чтобы пользователь ввел?
Название: textarea и редактирование текста
Отправлено: Boxa от 23 Мая 2006, 16:19:54
Цитировать
CGVictor:
Boxa ??? Чем не устраивает textarea.value+=\'text\' ?

не вижу логики, а если человек будет в разных местах текст дописывать?
Название: textarea и редактирование текста
Отправлено: Boxa от 23 Мая 2006, 16:21:25
Ещё раз повторяюсь, надо что б в тексарии был какой-то текст, НО удалять содержимое нельзя было, только можно было дописывать что либо, и соответственно удалять только что написанное
Название: textarea и редактирование текста
Отправлено: vasa_c от 23 Мая 2006, 16:41:45
Boxa, а обязательно тот текст должен находиться в текстареи?
Можно конечно ловить события нажатия кнопок на textarea и сверять начало текста с заданным. Но что-то не так как-то это все...
Название: textarea и редактирование текста
Отправлено: Boxa от 23 Мая 2006, 16:45:15
не обязательно, но я незнаю больше форм для редактирования текста с построчным переносом
Название: textarea и редактирование текста
Отправлено: vasa_c от 23 Мая 2006, 16:47:25
Boxa, а обрисовать задачу поконкретнее? Думаю по другому можно сделать.
Название: textarea и редактирование текста
Отправлено: Boxa от 23 Мая 2006, 16:49:05
Вообщем задача такая. Скажем человек пишет какой-то текст. Ему надо, что б редакторы не могли его удалить (какой он был изначально), а лишь смогли дописывать свои "комментарии", другими словами дополнять этот текст
Название: textarea и редактирование текста
Отправлено: vasa_c от 23 Мая 2006, 16:56:08
А можно вывести этот текст просто, собственно, текстом на страницу? А под ним уже отобразить пустую textarea, где можно писать свои комментарии.
Название: textarea и редактирование текста
Отправлено: Boxa от 23 Мая 2006, 16:58:28
тогда не будет понятно, куда он коммент вставляет. в том то и дело, что надо сделать именно так, как я описал
Название: textarea и редактирование текста
Отправлено: vasa_c от 23 Мая 2006, 17:02:28
Boxa, если правильно оформить все будет понятно.
А обойти форму и напрямую серверу отправить всякую гадость злономеренный дядя все равно сможет.
Название: textarea и редактирование текста
Отправлено: Boxa от 23 Мая 2006, 17:04:20
это не будет пабликом, это для личного пользования
Название: textarea и редактирование текста
Отправлено: Boxa от 23 Мая 2006, 17:05:56
Давайте всё-таки по теме, какие есть предложения? Задача действительно сложная. Я думал об отключении кнопок BackSpace & Delete, если они собираются удалять текст изначальный, только не понятно, как мне отделить изначальный текст от введенного
Название: textarea и редактирование текста
Отправлено: vasa_c от 23 Мая 2006, 17:09:25
Если очень хочется извратиться, то можно ловить все нажатия кнопок на textarea и в обработчике проверять, чтобы текст в поле содержал в начале заданный текст. Если не содержит, то значит вставлять его.
Если при этом нужно учитывать copy/paste, то задача усложняется.
Название: textarea и редактирование текста
Отправлено: 0b0rm0t от 23 Мая 2006, 17:19:24
Если извращаться с textarea, то довольно много всего надо предусмотреть: нажатие backspace/delete, выделение, хоткеи типа "вырезать" и тд. Опять же, позицию курсора отлавливать надо (это скорее всего не проблема).

Я бы на твоем месте сделал свой аналог textarea --- либо на html + js, либо applet какой. И работы меньше (надо реализовать пару фич, а не запретить кучу всего) и возможностей больше --- как минимум можно подсвечивать то, что менять запрещено.
Название: textarea и редактирование текста
Отправлено: vasa_c от 23 Мая 2006, 17:33:24
Если на то пошло, то вот простейшая защита:



Название: textarea и редактирование текста
Отправлено: CGVictor от 23 Мая 2006, 17:44:09
vasa_c
Возможно и так.

Однако, я бы решал так (если все же вдруг действительно понадобилось):
- дал бы редактировать всё
- при получении формы на сервере делал diff и смотрел, чтобы не было удаления элементов.

Другие способы, имхо - изобретение себе геморроя.
Название: textarea и редактирование текста
Отправлено: vasa_c от 23 Мая 2006, 17:47:03
Цитировать
изобретение себе геморроя

Ну я примерно о том же
Название: textarea и редактирование текста
Отправлено: Boxa от 23 Мая 2006, 17:48:37
Цитировать
CGVictor:
- при получении формы на сервере делал diff и смотрел, чтобы не было удаления элементов.


Это хотел сделать, только получится не очень красиво. Скажем мне надо будет редактированные места (новые введения) красить другим цветом... блин.. даже незнаю как тебе объяснить. короче пока софт не имеет интеллекта, поэтому не может точно определить различие, и где именно новое, а где старое.

vasa_c

Большое спасибо, дал толчок :) Буду модифицировать. Вопросы попутно задавать, т.к. в JS я не силен
Название: textarea и редактирование текста
Отправлено: vasa_c от 23 Мая 2006, 17:50:24
Boxa, js конечно хорошо, но проверка на сервере никогда лишней не будет.
Название: textarea и редактирование текста
Отправлено: Boxa от 23 Мая 2006, 17:51:48
vasa_c

Делается это для себя, поэтому ничего подставляться не будет, ибо самому себе гавна не делаем =) А проверочку не большую тоже сделаю, но не киллометры кода
Название: textarea и редактирование текста
Отправлено: Boxa от 23 Мая 2006, 17:55:47
vasa_c
Вопрос по коду, если я ставлю курсор между словами - он не дает писать, а переносит курсор в конец текста. Почему?
Название: textarea и редактирование текста
Отправлено: Boxa от 23 Мая 2006, 17:59:20
Цитировать
0b0rm0t:
Если извращаться с textarea, то довольно много всего надо предусмотреть: нажатие backspace/delete, выделение, хоткеи типа "вырезать" и тд. Опять же, позицию курсора отлавливать надо (это скорее всего не проблема).

Я бы на твоем месте сделал свой аналог textarea --- либо на html + js, либо applet какой. И работы меньше (надо реализовать пару фич, а не запретить кучу всего) и возможностей больше --- как минимум можно подсвечивать то, что менять запрещено.

а где вообще есть доки по созданию таких вещей?
Название: textarea и редактирование текста
Отправлено: CGVictor от 24 Мая 2006, 10:57:43
Boxa
Google+MSDN.

Цитировать
Boxa:
не может точно определить различие

Гм. Diff - это и есть различие текстов, до определенного предела.
Можно, при желании, разбить текст на слова и смотреть отличия уже по ним.