我們遇到了同樣的問題,但解決方案有點不方便。 tinymce核心中有一個我們需要覆蓋的類:tinymce.UndoManager
。
我們使用了一個粘貼到編輯器對象的變量來決定是否應該實際創建撤消步驟:tinymce.activeEditor.disable_undo_creation
。 下面是改寫類的代碼部分:
add : function(level) {
if (tinymce.activeEditor.disable_undo_creation) return;
var i, settings = editor.settings, lastLevel;
level = level || {};
level.content = getContent();
// Add undo level if needed
lastLevel = data[index];
if (lastLevel && lastLevel.content == level.content)
return null;
// Time to compress
if (settings.custom_undo_redo_levels) {
if (data.length > settings.custom_undo_redo_levels) {
for (i = 0; i < data.length - 1; i++)
data[i] = data[i + 1];
data.length--;
index = data.length;
}
}
// Get a non intrusive normalized bookmark
level.bookmark = editor.selection.getBookmark(2, true);
// Crop array if needed
if (index < data.length - 1)
data.length = index + 1;
data.push(level);
index = data.length - 1;
self.onAdd.dispatch(self, level);
editor.isNotDirty = 0;
return level;
},
當編輯器無法創建撤消步驟重做/撤銷將不再工作。
+1好問題 – Thariama