Отменить и повторить в WYSYWYG contentEditable в SWT не работает - программирование
Подтвердить что ты не робот

Отменить и повторить в WYSYWYG contentEditable в SWT не работает

Я создаю редактор HTML5 WYSYWYG С SWT, установив атрибут contentEditable тега body на true.

Когда я выполняю некоторые команды типа document.execCommand('bold'), он работает отлично. Но когда я пытаюсь отменить операцию с помощью document.execCommand('undo'), ничего не происходит. Я не знаю, нужно ли мне устанавливать менеджера отмены или делать что-то подобное. Можете ли вы мне помочь?

4b9b3361

Ответ 1

Это, по-видимому, обычная проблема: Google search покажет. На следующем сайте есть хорошая таблица совместимости и демонстрация для тестирования.

На демонстрационной странице также есть следующий оператор:

Undo/Redo не работает в IE. Проблема в том, что изменения в textarea справа также добавляются в стек Undo/Redo. Там в окончательной версии не будет текстового поля, поэтому нет необходимости решить проблему.

Ответ 2

В соответствии с эта таблица атрибутов quirksmode, отменить/повторить работу во всех основных браузерах, но она имеет это примечание:

Отмена работает в Safari, но если вы слишком часто выполняете Undo/Redo, он сработает. Решено в 3. Если вы внесли свои изменения в область редактирования, Undo/Redo продолжает работать в Mozilla и Safari (хотя он игнорирует ваши пользовательские изменения), но в IE и Opera он перестает работать.

Я не знаю, как SWT может повлиять на это, но лучше использовать

document.execCommand("undo", "", null)

ExecCommand всегда был очень глючным, и я мало знаю о SWT, но надеюсь, что это поможет вам.