У меня есть страница, где я использую экземпляр 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