Javascript 在剑道编辑器中创建自定义按钮

Javascript 在剑道编辑器中创建自定义按钮,javascript,kendo-ui,telerik,kendo-asp.net-mvc,kendo-editor,Javascript,Kendo Ui,Telerik,Kendo Asp.net Mvc,Kendo Editor,我正在使用剑道编辑器。当我想为多行创建项目列表时,遇到问题(见图) 为了解决此问题,我正在创建自定义按钮: { name: "custom", tooltip: "Insert a List", exec: function(e) { var editor = $(this).data("kendoEditor");

我正在使用剑道编辑器。当我想为多行创建项目列表时,遇到问题(见图)

为了解决此问题,我正在创建自定义按钮:

 {
                name: "custom",
                tooltip: "Insert a List",
                exec: function(e) {
                    var editor = $(this).data("kendoEditor");
                    var selectedText = editor.getSelection().toString();
                    if (selectedText.length > 0) {
                        var list = selectedText.split("\n").join("</li><li>");
                        list = "<ul><li>" + list.substring(0, list.length - 5) + "</ul>";
                    }
                    editor.exec("inserthtml", { value: list });
                }
            }
{
名称:“海关”,
工具提示:“插入列表”,
执行:功能(e){
var编辑器=$(this.data(“kendoEditor”);
var selectedText=editor.getSelection().toString();
如果(已选择文本长度>0){
var list=selectedText.split(“\n”).join(“
  • ”); list=“
    • ”+list.substring(0,list.length-5)+“
    ”; } exec(“inserthtml”,{value:list}); } }

  • 当选择整行文字时,此代码可以正常工作,但当只选择一行的一部分(不是整行,只是行的某个字符)时,列出不是从行的起点创建的项目。

    在选择对象上执行
    toString()
    ,您需要使用Selection和Range API来获得完整的文本节点,然后应用拆分


    您能在中复制吗?请检查此项。你是说。。如果您选择文本“完全不”(第1项),则列表创建错误(第2项),而它应该像第3项一样创建。是吗?(图1)和(图2)是正确的,但在本示例中,我只想为项目1和2创建列表(如果未选择“333”,则不为它们创建列表)。结果将是:.111.222 333就像图2中一样,它应该为整个
    222
    创建,而不是断开,对吗?我认为使用
    范围
    选择
    可以得到选中的文本,而不是所有文本。在这个问题中,我们需要找到全文中选定的文本。