jQuery KendoEditor не удаляет вставленный HTML - PullRequest
0 голосов
/ 08 января 2019

У меня есть страница, где я использую экземпляр KendoEditor. Редактор должен иметь очень ограниченную функциональность и разрешать только теги strong, ul, li, ol и p HTML внутри своего содержимого. Всякий раз, когда я вставляю целую веб-страницу в редактор, она вставляется вместе со всеми HTML-тегами этой страницы.

Я попытался отфильтровать их, используя сочетание pasteCleanup атрибута KendoEditor и регулярных выражений, например:

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[^>]*>/, "");
    }
},

Но даже если я установлю все: true на pasteCleanup, он все равно сохранит теги span style="font-size: something", шрифт и заголовки (h1, h2 ... и т. Д.). Я также попытался разобрать его вручную при вставке события KendoEditor:

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

Я попытался настроить таргетинг как на textarea редактора, так и на Iframe, содержащий отображаемый текст, но это не имеет абсолютно никакого эффекта. Я предполагаю, что вставка срабатывает еще до того, как содержимое будет визуализировано. Я также попробовал почти все комбинации pasteCleanup , вы можете себе представить, что некоторые из этих реквизитов могут конфликтовать друг с другом. Есть идеи?

пример вставленной страницы: https://html.nicole -wellinger.ch / schrift / txtgroesse.html

1 Ответ

0 голосов
/ 08 января 2019

Вы забыли об одной маленькой, но важной детали: модификатор JavaScript g. Возможно, вы захотите рассмотреть i для нечувствительности к регистру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...