Как я могу удалить все форматирование html из текста при вставке в редактор KendoUI?

Я хочу использовать редактор KendoUI, чтобы пользователи могли форматировать текст только в абзацы. Возможно выделение жирным шрифтом и подчеркиванием.

Я борюсь с 2 вещами:

  1. Я хочу удалить все форматирование html из текста при вставке
  2. Я хочу отключить сочетания клавиш для полужирного шрифта, подчеркивания и т. Д. - кажется, они работают, даже если элемента панели инструментов нет.

Спасибо!


person richardwhatever    schedule 24.03.2013    source источник


Ответы (4)


Для вставки только текста вы можете определить обработчик вставки, который удаляет все, кроме текста. Это так же просто, как:

$("#editor").kendoEditor({
    paste: function (ev) {
        ev.html = $(ev.html).text();
    }
});

Обработчик paste получает в качестве аргумента событие, которое имеет в html анализируемый текст. Мы можем использовать jQuery для получения только текста, используя $(ev.html).text()

Для удаления ярлыков и, насколько я мог протестировать его с последней версией пользовательского интерфейса Kendo, если вы определяете только те инструменты, которые вам нужны, активны только эти ярлыки. Итак, если вы скажете что-то вроде:

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

Доступен только italic ярлык <ctrl>+i. Если вы оставите массив tools пустым, то у вас его нет.

person OnaBai    schedule 24.03.2013
comment
Это, вероятно, работает для обработчика вставки, спасибо. (хотя, учитывая нехватку времени и некоторые дополнительные функции, такие как белый список тегов, я решил использовать TinyMCE как более быстрое решение). б и т. д. - person richardwhatever; 26.03.2013
comment
У меня это работает в OSX, Firefox и Chrome с Kendo UI 2013.1.319... Проверьте здесь jsfiddle.net /OnaBai/5yXej Я также пробовал с Kendo UI 2012.3.1319, и он тоже работает. Какую среду вы пробовали? Эта ссылка работает? - person OnaBai; 26.03.2013
comment
Только что попробовал на Windows7 и Chrome. Я набрал какой-то текст, выделил его и нажал CTRL-B, и он был выделен жирным шрифтом. - person richardwhatever; 26.03.2013
comment
:-( Пробовал в Windows 7 и IE8 (версия 8.0.7601.17514) и работает, но когда я пробовал в хроме, не удалось (!?) - person OnaBai; 26.03.2013

Теперь этого можно легко добиться с помощью опции pasteCleanup.

См. здесь: http://docs.telerik.com/kendo-ui/controls/editors/editor/pasting

person Zubzob    schedule 08.09.2016

Kendo MVC также имеет расширение для этой цели. Пример использования:

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

false в данном случае означает, что вы хотите очистить все, кроме новых строк.

person Yegor Androsov    schedule 30.09.2019

для меня это полное решение

                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;
                }
            }
person Kelum    schedule 20.06.2021