привязка отмены / повтора события - PullRequest
0 голосов
/ 24 ноября 2010

Я нашел несколько интересных менеджеров отмены 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 область).

1 Ответ

0 голосов
/ 24 ноября 2010

Я не думаю, что вы можете запускать события браузера по умолчанию ...

, которые имеют в виду использование array для сохранения любого нажатия клавиши определенного времени.например,

, если я набираю «hello world», который в секунду или если я продолжаю печатать, продолжайте записывать символы.когда пользователи перестают набирать текст более чем на секунду, затем отправьте его в массив таким образом, чтобы у вас был больший контроль над изменениями.

Другое дело, что это плохое чувство.но я уверен, что 26 и 122 не означают ctrl + z, скорее всего, это z z self или элемент управления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...