Автор Тема: Undo/Redo, Cut/Paste  (Прочитано 2986 раз)

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

Оффлайн dub

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 236
  • +0/-0
  • 0
    • Просмотр профиля
    • http://binartis.com/
Undo/Redo, Cut/Paste
« : 17 Августа 2003, 21:54:00 »
UNDO/REDO

Поддержка execCommand(\'Undo/Redo\') в различных версиях IE - штука довольно слуайная. Хочу написать для этих действий собственные функции. Алгоритмические размышления:

UNDO
При каждом действии некоторым образом изменяется содержимое области редакирования. Перед выполнением каждого действия текущее содержимое области редактирования можно сохранять в специальный скрытый textarea. При последующем вызове Undo заменять содержимое области редактирования на содержимое этого textarea.

REDO
При каждом вызове некоторой функции имя(атрибуты) этой функции можно сохранять в специальном скрытом input. В дальнейшем при вызове Redo вызывать функцию, соответствующую имени(параметрам), сохраненным в этом input. Понятное дело, именами самих функций Undo/Redo заменять содеримое этого input не нужно.

Вопрос: Где я не прав? Может что-то можно сделать оптимальнее?

CUT/PASTE

Существует ли кросс-браузерный/межплатформенный интерфейс с буфером обмена? Или только в IE и только под виндой?

Заранее спасибо.

Оффлайн dub

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 236
  • +0/-0
  • 0
    • Просмотр профиля
    • http://binartis.com/
Undo/Redo, Cut/Paste
« Ответ #1 : 20 Августа 2003, 05:58:45 »
Ладно. Проехали с алгоритмом. Вернемся к execCommand(\'Undo\'/\'Redo\'). Кто нибудь знает какие-нибудь странные особенности? Есть два абсолютно идентичных вызова этого метода. В большом редакторе он не работает вообще. В тестовом файле, к которому подключается тот же .js с функциями работает замечательно. В обоих случаях Сtrl+Z и Ctrl+Y работают замечательно. Понимаю, звучит дико.
« Последнее редактирование: 20 Августа 2003, 06:03:49 от dub »

Оффлайн dub

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 236
  • +0/-0
  • 0
    • Просмотр профиля
    • http://binartis.com/
Undo/Redo, Cut/Paste
« Ответ #2 : 20 Августа 2003, 06:33:57 »
Блин.
Нарыл кое-что. Но меня это не радует.
http://info.rt.ru/library/htmlarea/readme.html#bugs1
Вкратце: при наведении на кнопку по событию onMouseOver заменяется содержимое DIV c комментариями. Типа появляется писулька "Отменить". Для тех, кому лень дождаться всплывающей подсказки. Очень неплохо выглядит. Но по какой-то причине после замены innerHTML этого DIV очищается кэш Undo. А комбинацией клавиш то же самое получается, потому что мышь никуда не уводится и не вызывает это самое onMouseOver. То есть если сначала подвигать мышью над пунктами меню, то один хрен, даже клавишами не получится.
Такая вот байда. Как бы бороться с этим, а? Други?

 

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