Программирование => 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 как элемент редактирования и чего-то прикрутить мне такую фигню к нему не получается, вот.