【问题标题】:Handle Ctrl+Z (undo/redo) for text editor in single page application在单页应用程序中处理文本编辑器的 Ctrl+Z(撤消/重做)
【发布时间】:2017-01-04 05:03:07
【问题描述】:

我有一个由文本编辑器(剑道编辑器)组成的单页应用程序。文本编辑器中的数据有点像这样替换

$("#editor").kendoEditor({
                    resizable: {
                        content: false,
                        toolbar: true
                    }
                });

                var editor = $("#editor").data("kendoEditor");

                var setValue = function () {
                    editor.value($("#value").val());
                };

参见演示here

问题: 所以我正在更改A 的记录,然后保存它。然后我切换到B。现在,如果我执行 Ctrl+Z,文本编辑器会显示 A 的记录。如何防止这种行为。

是一种按需删除撤消历史记录的方法,还是阻止文本编辑器用以前的记录替换文本的方法?

【问题讨论】:

    标签: javascript kendo-ui undo-redo ctrl kendo-editor


    【解决方案1】:

    更新:更好的解决方案。

    我联系了 Kendo 开发人员,他们提供了一个简洁的解决方案。

    var editor = $("#editor").data("kendoEditor");
    editor.undoRedoStack.clear();
    

    注意:此功能未在公共 api 中记录,而是 可能会在较新的版本中更改。这是有效的版本 2016.3.1118

    demo

    旧解决方案。

    我最终销毁小部件并将其重新绑定到文本区域。

    http://dojo.telerik.com/OjIZe

    $("#destroy").click(function(){ 
      var copy=$("#editor").clone(); 
      $("#editor").data('kendoEditor').wrapper.find("iframe").remove(); 
      $("#editor").data('kendoEditor').destroy(); 
      $("#test").empty(); 
      $("#test").append(copy); 
      $("#editor").kendoEditor({ resizable:    { 
        content: false, toolbar: true 
      } 
      }); 
    });
    

    【讨论】:

      猜你喜欢
      • 2017-02-09
      • 2015-11-25
      • 1970-01-01
      • 2017-12-29
      • 2020-11-28
      • 1970-01-01
      • 2012-06-12
      • 2012-12-21
      相关资源
      最近更新 更多