2013-07-22 344 views
1

我需要在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是我的活動編輯器。

+0

+1好問題 – Thariama

回答

0

我們遇到了同樣的問題,但解決方案有點不方便。 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; 
     }, 

當編輯器無法創建撤消步驟重做/撤銷將不再工作。

+0

我會試試這個,當我回到家裏! – cyrat

3

如果您正在使用tinyMCE的4 *,您可以通過BeforeAddUndo事件返回禁用撤銷/重做:

ed.on('BeforeAddUndo', function(e) { 
    return false; 
}); 
+0

男人,你救了我的一天! –

0

TinyMCE的V4 - 只需覆蓋默認設置。

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