Kendo ui 粘贴到KendoUI编辑器时,如何从文本中剥离所有html格式?

Kendo ui 粘贴到KendoUI编辑器时,如何从文本中剥离所有html格式?,kendo-ui,kendo-asp.net-mvc,Kendo Ui,Kendo Asp.net Mvc,我想使用KendoUI编辑器基本上只允许用户将文本格式化为段落。可能允许使用粗体和下划线 我在为两件事挣扎: 我想在粘贴时从文本中删除所有html格式 我想禁用粗体、下划线等的键盘快捷键-即使工具栏元素不存在,它们似乎也能工作 谢谢 要仅粘贴文本,可以定义一个粘贴处理程序,该处理程序删除除文本以外的所有内容。这很简单: $("#editor").kendoEditor({ paste: function (ev) { ev.html = $(ev.html).text()

我想使用KendoUI编辑器基本上只允许用户将文本格式化为段落。可能允许使用粗体和下划线

我在为两件事挣扎:

  • 我想在粘贴时从文本中删除所有html格式
  • 我想禁用粗体、下划线等的键盘快捷键-即使工具栏元素不存在,它们似乎也能工作

  • 谢谢

    要仅粘贴文本,可以定义一个粘贴处理程序,该处理程序删除除文本以外的所有内容。这很简单:

    $("#editor").kendoEditor({
        paste: function (ev) {
            ev.html = $(ev.html).text();
        }
    });
    
    paste
    处理程序接收一个事件作为参数,该事件在
    html
    中包含正在解析的文本。我们可以使用jQuery只获取使用
    $(ev.html).text()的文本

    为了删除快捷方式,我可以用最新的剑道UI版本测试它,如果你只定义你想要的工具,那么只有那些快捷方式是活动的。所以如果你说:

    $("#editor").kendoEditor({
        tools: [
            "italic"
        ],
        paste: function (ev) {
            ev.html = $(ev.html).text();
        }
    });
    

    只有
    italic
    快捷方式
    +i
    可用。如果将
    工具
    数组保留为空,则没有任何工具。

    现在可以使用
    粘贴清理
    选项轻松实现这一点


    请参见此处:

    剑道MVC也有用于此目的的扩展。用法示例:

    .PasteCleanup(x => x.KeepNewLines(false))
    

    false
    在这种情况下,意味着您希望清除除新行以外的所有内容。

    对于我来说,这是完整的解决方案

                    pasteCleanup: {
                    custom: function (html)
                    {
                        html = html.replace(/<\s*br\/*>/gi, '');
                        html = html.replace(/<\s*a.*href="(.*?)".*>(.*?)<\/a>/gi, " $2 (Link - $1) ");
                        html = html.replace(/<\s*\/*.+?>/ig, '');
                        html = html.replace(/ {2,}/gi, '');
                        html = html.replace(/\n+\s*/gi, '');
                        html = html.replace("&nbsp;", '');
                        html = html.replace(/&lt;.*?&gt;/g, '');
                        return html;
                    }
                }
    
    粘贴清理:{ 自定义:函数(html) { html=html.replace(//gi',); html=html.replace(/(.*)/gi,“$2(链接-$1)”; html=html.replace(//ig',); html=html.replace(/{2,}/gi',); html=html.replace(/\n+\s*/gi,”); html=html.replace(“,”); html=html.replace(/.*?/g'); 返回html; } }
    这可能适用于粘贴处理程序,谢谢。(虽然,考虑到时间限制和一些进一步的功能,比如标签白名单,我决定选择TinyMCE作为更快的解决方案)关于快捷方式,不幸的是,事实并非如此-我将工具数组留空,仍然可以+b等。它适用于OSX、Firefox和带有Kendo UI 2013.1.319的Chrome。。。检查这里,我也尝试了剑道UI 2012.3.1319,它也可以工作。你尝试过哪种环境?这个链接有用吗?刚刚在Windows7和Chrome上试用过。我键入了一些文本,选择了它,然后按CTRL-B并将其加粗。:-(在Windows 7和IE8(版本8.0.7601.17514)中尝试过,但在chrome中尝试时失败了(!?)