zkrvndm
@zkrvndm
Архитектор решений

Как автоматом очистить форматирование при копировании / вставке?

Существуют ли решения на JavaScript, которые при вставке текста в блок с contenteditable="true" автоматически очищает форматирование? Иначе, если пользователи будут копипастить текст откуда попало, со временем будет каша.
  • Вопрос задан
  • 888 просмотров
Решения вопроса 2
zkrvndm
@zkrvndm Автор вопроса
Архитектор решений
Нашел решение. Оказывается, существует событие paste, которое происходит, когда мы вставляем что-то в блок. Соответственно, можно повесить обработчик на него, отменить действие по умолчанию, а затем перехваченный текст обработать как душе угодно:
document.querySelector('div[contenteditable="true"]').addEventListener("paste", function(e) {
        e.preventDefault();
        var text = e.clipboardData.getData("text/plain");
        document.execCommand("insertHTML", false, text);
});
Ответ написан
Комментировать
@letrybaz
Можно в одну строчку
editor.onpaste = e => e.clipboardData.setData('text/plain', e.clipboardData.getData('text/plain'));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы