Я нашел несколько интересных менеджеров отмены javascript, и, конечно же, у нас есть тот, который в конечном итоге будет реализован в браузере с HTML5.
Теперь, в чем я не уверен, так это в том, как записывать действия пользователя, предназначенные для запуска «отмены» с помощью jQuery для управления UndoManager:
- Ctrl + Z, Ctrl + Shift + Z
- Cmd + Z, Cmd + Shift + Z
- Пользователь нажимает на Правка> Отменить или Правка> Повторить в своих браузерах
Мой первый удар в это будет:
function keypress(e){
if (e.metaKey) {
Collage.console(e);
switch(e.keyCode){
case 122: // Mac
if (e.shiftKey) {
undoManager.redo(e);
} else {
undoManager.undo(e);
}
case 26: // PC
if (e.shiftKey) {
undoManager.redo(e);
} else {
undoManager.undo(e);
}
}
}
};
$('#my-thing-with-undos').bind('keypress', keypress);
но как мне убедиться в том, что меню Edit (современного) браузера соответствует программе?
Я действительно не хочу, чтобы браузер пытался выяснить, что и как отменить в этом регионе или, по крайней мере, не выполнять его редактирование (это contenteditable = true
область).