Important changes to Tiny Cloud pricing > Find out more

NOTE: TinyMCE 5 reached End of Support in April 2023. No more bug fixes, security updates, or new features will be introduced to TinyMCE 5. We recommend you upgrade to TinyMCE 6 or consider TinyMCE 5 Long Term Support (LTS) if you need more time.

tinymce.UndoManager

This class handles the undo/redo history levels for the editor. Since the built-in undo/redo has major drawbacks a custom one was needed.

Methods

name summary defined by
add() Adds a new undo level/snapshot to the undo list. tinymce.UndoManager
beforeChange() Stores away a bookmark to be used when performing an undo action so that the selection is before the change has been made. tinymce.UndoManager
clear() Removes all undo levels. tinymce.UndoManager
extra() Adds an extra "hidden" undo level by first applying the first mutation and store that to the undo stack then roll back that change and do the second mutation on top of the stack. This will produce an extra undo level that the user doesn't see until they undo. tinymce.UndoManager
hasRedo() Returns true/false if the undo manager has any redo levels. tinymce.UndoManager
hasUndo() Returns true/false if the undo manager has any undo levels. tinymce.UndoManager
ignore() Executes the specified mutator function as an undo transaction. But without adding an undo level. Any logic within the translation that adds undo levels will be ignored. So a translation can include calls to execCommand or editor.insertContent. tinymce.UndoManager
redo() Redoes the last action. tinymce.UndoManager
reset() Resets the undo manager levels by clearing all levels and then adding an initial level. tinymce.UndoManager
transact() Executes the specified mutator function as an undo transaction. The selection before the modification will be stored to the undo stack and if the DOM changes it will add a new undo level. Any logic within the translation that adds undo levels will be ignored. So a translation can include calls to execCommand or editor.insertContent. tinymce.UndoManager
undo() Undoes the last action. tinymce.UndoManager

Methods

add

add(level:Object, event:DOMEvent):Object

Adds a new undo level/snapshot to the undo list.

Parameters
  • level (Object) - Optional undo level object to add.
  • event (DOMEvent) - Optional event responsible for the creation of the undo level.
Return value
  • Object - Undo level that got added or null it a level wasn't needed.

beforeChange

beforeChange()

Stores away a bookmark to be used when performing an undo action so that the selection is before the change has been made.

clear

clear()

Removes all undo levels.

extra

extra(callback1:function, callback2:function)

Adds an extra "hidden" undo level by first applying the first mutation and store that to the undo stack then roll back that change and do the second mutation on top of the stack. This will produce an extra undo level that the user doesn't see until they undo.

Parameters
  • callback1 (function) - Function that does mutation but gets stored as a "hidden" extra undo level.
  • callback2 (function) - Function that does mutation but gets displayed to the user.

hasRedo

hasRedo():Boolean

Returns true/false if the undo manager has any redo levels.

Return value
  • Boolean - true/false if the undo manager has any redo levels.

hasUndo

hasUndo():Boolean

Returns true/false if the undo manager has any undo levels.

Return value
  • Boolean - true/false if the undo manager has any undo levels.

ignore

ignore(callback:function)

Executes the specified mutator function as an undo transaction. But without adding an undo level. Any logic within the translation that adds undo levels will be ignored. So a translation can include calls to execCommand or editor.insertContent.

Parameters
  • callback (function) - Function that gets executed and has dom manipulation logic in it.

redo

redo():Object

Redoes the last action.

Return value
  • Object - Redo level or null if no redo was performed.

reset

reset()

Resets the undo manager levels by clearing all levels and then adding an initial level.

transact

transact(callback:function):Object

Executes the specified mutator function as an undo transaction. The selection before the modification will be stored to the undo stack and if the DOM changes it will add a new undo level. Any logic within the translation that adds undo levels will be ignored. So a translation can include calls to execCommand or editor.insertContent.

Parameters
  • callback (function) - Function that gets executed and has dom manipulation logic in it.
Return value
  • Object - Undo level that got added or null it a level wasn't needed.

undo

undo():Object

Undoes the last action.

Return value
  • Object - Undo level or null if no undo was performed.

Can't find what you're looking for? Let us know.

Except as otherwise noted, the content of this page is licensed under the Creative Commons BY-NC-SA 3.0 License, and code samples are licensed under the Apache 2.0 License.