Удалить цвет фона из вставленного текста WYSIWYG - PullRequest
0 голосов
/ 10 февраля 2020

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

В настоящее время у меня есть div, который можно редактировать:

<div id="editor" class="comment-section" contenteditable="true" spellcheck="false" tabindex="0"></div>

и затем с помощью jQuery я пытаюсь удалить цвет фона всех дочерних элементов в div, как при вставке текста, он добавляет диапазон к div:

$('#editor').on('paste', function(e) {
    $(this).children().attr('background-color', 'transparent');
});

Но, похоже, это устанавливает цвет фона предыдущего вставленного текста в прозрачный, но на самом деле он не удаляет фон.

1 Ответ

1 голос
/ 10 февраля 2020

Аналогично второму решению здесь: JavaScript получить данные буфера обмена при вставке события (кросс-браузер)

$('#editor').on('paste', function(e) {
    let  pastedData, text;
    // Stop data actually being pasted into div
    e.stopPropagation();
    e.preventDefault();
    // Get pasted data via clipboard API
    pastedData = e.originalEvent.clipboardData || window.clipboardData;
    pastedData = pastedData.getData('Text');
    text = $(this).text();
    console.log(text, pastedData);
    $(this).text(text+pastedData);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="editor" class="comment-section" contenteditable="true" spellcheck="false" tabindex="0"></div>
...