Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: dbs от 15 Октября 2003, 12:25:00

Название: execCommand DHTMLedit
Отправлено: dbs от 15 Октября 2003, 12:25:00
Привет всем помогите если кто знает, пытался тут сделать некое удобство с помощью DHTML, суть в том что всё вроде прекрасно в самой форме редактирования, но при сохранении вставляется куча ненужных тегов типа всяких br и между абзацами и списками слишком большие на мой взгляд дырки. Сохраняю что то типа text.value=oDiv.innerHTML и потом всё постю. Может конечно все ненужности вырезать регулярными выражениями как вариант, но мало ли может есть другой более оригинальный способ.
Заранее всем спасибо.
Название: execCommand DHTMLedit
Отправлено: Макс от 15 Октября 2003, 14:32:49
Цитировать
куча ненужных тегов типа всяких br
никто, кроме тебя не знает, какие теги нужные а какие - нет.
Цитировать
между абзацами и списками слишком большие на мой взгляд дырки
как абзацы получаются ? Нажатием клавиши Enter ? Если хочешь маленькие  - нажимай Shift+Enter (точно не помню, может alt или ctrl вместо Shift). Видел  еще вариант с отслеживанием нажатия клавиши Enter и принудительной вставкой
 вместо

Название: execCommand DHTMLedit
Отправлено: dbs от 15 Октября 2003, 17:41:54
спасибо попробую,
только я не понял немного, а как я код клавиши потом к методу ExecCommand присобачу?
Название: execCommand DHTMLedit
Отправлено: Макс от 15 Октября 2003, 19:27:48
просто вешаешь обработчик нажатия кнопок клавиатуры на объект твоего редактора:


а в функции my_event_handler() и делаешь соответствующую проверку
Название: execCommand DHTMLedit
Отправлено: dbs от 16 Октября 2003, 09:41:41
Извиняюсь что вчера не ответил, заработался.
что обрабатытывать по onkeydown понятно, но что потом когда я нажму Enter он мне создаст кусок обрамлённый тэгами

ведь и всё равно наверное регулярными выражениями придётся что-то делать, в объекте редактора то выглядит всё чики-поки.
Потом вот еще например если я создаю список и потом выполняю команду увеличения отступа вместо нажатия Enter, document.execCommand(\'Outdent\') все равно мне в результате вставится
 и оставшийся текст станет обзацем.
Тут наверное всё таки без регулярных выражений не обойтись!?
Название: execCommand DHTMLedit
Отправлено: dbs от 16 Октября 2003, 12:08:34
всё вроде победил регулярками, но теперь только вот таблички бы всталять научиться, как я понимаю это только через ActiveX получится может?
Название: execCommand DHTMLedit
Отправлено: Макс от 16 Октября 2003, 16:41:35
dbs
где-то на msdn была статья How to Build Tables Dynamically
Там все подробно описано.
Название: execCommand DHTMLedit
Отправлено: dbs от 17 Октября 2003, 10:03:52
Посмотрел, но насколько я понял, может конечно не до конца, прокатит ли это для случая если надо чего-то отменять командами Redo и Undo метода ExecCommand, видел тут что для создания таблиц использовался объект , там во всплывающем окошке задавались всякие параметры и после этого передавались в основной документ и вызывалась функция
function inserta_table(nf,nc,at,ac,tit)
{
 var pVar = document.ObjTableInfo;
 pVar.NumRows = nf;
 pVar.NumCols = nc;
 pVar.TableAttrs = at;
 pVar.CellAttrs = ac;
 obj_editor.ExecCommand(DECMD_INSERTTABLE,OLECMDEXECOPT_DODEFAULT, pVar);
 return true;
 }
где obj_editor это:
я пользую Div как элемент редактирования и чего-то прикрутить мне такую фигню к нему не получается, вот.