Автор Тема: execCommand DHTMLedit  (Прочитано 3616 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн dbs

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 7
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
execCommand DHTMLedit
« : 15 Октября 2003, 12:25:00 »
Привет всем помогите если кто знает, пытался тут сделать некое удобство с помощью DHTML, суть в том что всё вроде прекрасно в самой форме редактирования, но при сохранении вставляется куча ненужных тегов типа всяких br и между абзацами и списками слишком большие на мой взгляд дырки. Сохраняю что то типа text.value=oDiv.innerHTML и потом всё постю. Может конечно все ненужности вырезать регулярными выражениями как вариант, но мало ли может есть другой более оригинальный способ.
Заранее всем спасибо.

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
execCommand DHTMLedit
« Ответ #1 : 15 Октября 2003, 14:32:49 »
Цитировать
куча ненужных тегов типа всяких br
никто, кроме тебя не знает, какие теги нужные а какие - нет.
Цитировать
между абзацами и списками слишком большие на мой взгляд дырки
как абзацы получаются ? Нажатием клавиши Enter ? Если хочешь маленькие  - нажимай Shift+Enter (точно не помню, может alt или ctrl вместо Shift). Видел  еще вариант с отслеживанием нажатия клавиши Enter и принудительной вставкой
 вместо

First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн dbs

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 7
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
execCommand DHTMLedit
« Ответ #2 : 15 Октября 2003, 17:41:54 »
спасибо попробую,
только я не понял немного, а как я код клавиши потом к методу ExecCommand присобачу?

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
execCommand DHTMLedit
« Ответ #3 : 15 Октября 2003, 19:27:48 »
просто вешаешь обработчик нажатия кнопок клавиатуры на объект твоего редактора:


а в функции my_event_handler() и делаешь соответствующую проверку
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн dbs

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 7
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
execCommand DHTMLedit
« Ответ #4 : 16 Октября 2003, 09:41:41 »
Извиняюсь что вчера не ответил, заработался.
что обрабатытывать по onkeydown понятно, но что потом когда я нажму Enter он мне создаст кусок обрамлённый тэгами

ведь и всё равно наверное регулярными выражениями придётся что-то делать, в объекте редактора то выглядит всё чики-поки.
Потом вот еще например если я создаю список и потом выполняю команду увеличения отступа вместо нажатия Enter, document.execCommand(\'Outdent\') все равно мне в результате вставится
 и оставшийся текст станет обзацем.
Тут наверное всё таки без регулярных выражений не обойтись!?

Оффлайн dbs

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 7
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
execCommand DHTMLedit
« Ответ #5 : 16 Октября 2003, 12:08:34 »
всё вроде победил регулярками, но теперь только вот таблички бы всталять научиться, как я понимаю это только через ActiveX получится может?

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
execCommand DHTMLedit
« Ответ #6 : 16 Октября 2003, 16:41:35 »
dbs
где-то на msdn была статья How to Build Tables Dynamically
Там все подробно описано.
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн dbs

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 7
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
execCommand DHTMLedit
« Ответ #7 : 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 как элемент редактирования и чего-то прикрутить мне такую фигню к нему не получается, вот.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28