1

我需要在 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 是我的活跃编辑器。

4

3 回答 3

3

如果您使用的是 tinyMCE 4.*,您可以通过在BeforeAddUndo事件上返回false来禁用 Undo/Redo:

ed.on('BeforeAddUndo', function(e) {
  return false;
});
于 2015-05-28T14:21:12.513 回答
1

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

tinymce.init({
  selector: '#content',
  toolbar: 'bold italic strikethrough underline | quicklink | alignleft aligncenter alignright alignjustify | link ',
});
于 2017-06-16T17:46:56.060 回答
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;
        },

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

于 2013-07-23T08:05:25.727 回答