tinyMCE禁用撤消/重做功能

时间:2013-07-22 18:19:55

标签: tinymce

我需要在tinyMCE中禁用撤消/重做功能。我看到了文档和我使用过的函数:

ed.onUndo.add(function(ed, e) {
                tinymce.dom.Event.cancel(e);
                e.preventDefault();
                return false;
            });
ed.onRedo.add(function(ed, e) {
                tinymce.dom.Event.cancel(e);
                e.preventDefault();
                return false;
            });

但没有任何成功。 注意:ed是我的活动编辑器。

3 个答案:

答案 0 :(得分:3)

如果您使用的是tinyMCE 4. *,则可以通过在 BeforeAddUndo 事件上返回 false 来停用撤消/重做:

const char * CutList[2] = {"value"+vLowCut, "value2"+vLowCut2)

答案 1 :(得分:0)

我们遇到了同样的问题,但解决方案有点笨拙。 在我们需要覆盖的tinymce核心中有一个javascript类: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;
        },

当编辑器无法创建撤消步骤时,重做/撤消将不再起作用。

答案 2 :(得分:0)

TinyMCE v4 - 只需覆盖默认设置。

tinymce.init({
  selector: '#content',
  toolbar: 'bold italic strikethrough underline | quicklink | alignleft aligncenter alignright alignjustify | link ',
});