Отменить и повторить в WYSYWYG contentEditable в SWT не работает
Я создаю редактор HTML5 WYSYWYG С SWT, установив атрибут contentEditable
тега body на true
.
Когда я выполняю некоторые команды типа document.execCommand('bold')
, он работает отлично. Но когда я пытаюсь отменить операцию с помощью document.execCommand('undo')
, ничего не происходит. Я не знаю, нужно ли мне устанавливать менеджера отмены или делать что-то подобное. Можете ли вы мне помочь?
Ответы
Ответ 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, но надеюсь, что это поможет вам.