Re: Доступ к Undo Stack
От: c-smile Канада http://terrainformatica.com
Дата: 16.08.20 16:10
Оценка: 78 (1)
Здравствуйте, x-code, Вы писали:

XC>Обратил внимание на то, что в режиме ContentEditable действия, выполняемые с помощью execCommand, можно отменить с помощью той же execCommand("undo"). А действия, выполненные с помощью модификации DOM напрямую, нельзя отменить.

XC>Однако одна лишь execCommand меня соврешенно не устраивает.
XC>Нет ли какой-то функции в JavaScript, которая "сохраняет состояние" перед модификацией DOM и добавляет его в Undo стеку, с тем чтобы затем стандартной командой document.execCommand("undo") отменить эти изменения.

Нет такого.

В Sciter мне пришлось добавлять Element.transact(callback) метод:

Element.transact(function(mutator) { // эти действия откатятся (undo) как одна опрерация
  mutator.insertNode(pos,element1);
  mutator.insertNode(pos,element2);
  mutator.removeNode(element3);   
});


https://sciter.com/docs/content/sciter/Transact.htm
Доступ к Undo Stack
От: x-code  
Дата: 05.08.20 21:05
Оценка:
Обратил внимание на то, что в режиме ContentEditable действия, выполняемые с помощью execCommand, можно отменить с помощью той же execCommand("undo"). А действия, выполненные с помощью модификации DOM напрямую, нельзя отменить.
Однако одна лишь execCommand меня соврешенно не устраивает.
Нет ли какой-то функции в JavaScript, которая "сохраняет состояние" перед модификацией DOM и добавляет его в Undo стеку, с тем чтобы затем стандартной командой document.execCommand("undo") отменить эти изменения.
Писать undo stack вручную не предлагайте, точно не буду, проще вообще забить на это.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.