【问题标题】:jQuery KendoEditor not stripping pasted HTMLjQuery KendoEditor 不剥离粘贴的 HTML
【发布时间】:2019-01-08 08:50:01
【问题描述】:

我有一个使用 KendoEditor 实例的页面。编辑器的功能应该非常有限,并且只允许在其内容中包含strongulliolp HTML 标签。每当我将整个网页粘贴到编辑器中时,它都会与该页面的所有 HTML 标记一起粘贴。

我尝试混合使用 KendoEditor 的 pasteCleanup 属性和正则表达式,如下所示:

pasteCleanup: {
    css: true,
    span: true,
    msAllFormatting: true,
    msConvertLists: true,
    msTags: true,
    keepNewLines: true,
    custom: function (html) {
        return html.replace(/<\/?(?!strong)(?!ul)(?!li)(?!ol)(?!p)\w*\b[^>]*>/, "");
    }
},

但即使我在 pasteCleanup 上设置了 all: true,它仍然保留 span style="font-size: something"、字体和标题(h1h2 ...等)标签。我还尝试在 KendoEditor 的粘贴事件上手动解析它:

paste: function(e) {
  $(".text-editor").find("*").not("strong,ul,li,ol,p").each(function() {
    $(this).replaceWith(this.innerHTML);
  });
},

我尝试同时定位编辑器的textarea,以及包含显示文本的Iframe,但这绝对没有效果。我的假设是 paste 在内容被渲染之前触发。我还尝试了 pasteCleanup 的所有组合,您可以想象其中一些道具可能会相互冲突。有什么想法吗?

粘贴页面示例:https://html.nicole-wellinger.ch/schrift/txtgroesse.html

【问题讨论】:

    标签: javascript jquery html kendo-ui kendo-editor


    【解决方案1】:

    您忘记了一个小而重要的细节:JavaScript modifier g。您可能还需要考虑 i 以不区分大小写。

    【讨论】:

    • 你是对的。毕竟我错过了正则表达式上的全局标志。谢谢
    • 不要忘记:如果它是正确或有用的解决方案,您可以接受此答案。在stackoverflow.com/tour 上阅读有关接受答案的更多信息
    【解决方案2】:

    对我来说,这是它的工作原理

                    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;
                    }
                }
    

    【讨论】:

      猜你喜欢
      • 2015-08-18
      • 1970-01-01
      • 2011-12-14
      • 2020-09-04
      • 2012-11-15
      • 1970-01-01
      • 2016-08-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多