API буфера обмена для вставки - PullRequest
0 голосов
/ 22 февраля 2020

Я использую document.execCommand для изменения скопированных данных, когда происходит событие вставки, например:

Выполнение кода при запуске события вставки:

event.preventDefault();
var copiedHTML = $(event.clipboardData.getData('text/html'));
document.execCommand('insertHTML', false, "<div>" +  copiedText + "</div>");

Я прочитал эту execCommand в будущем это будет устаревшим, и я ищу альтернативу.

Из того, что я понимаю, API буфера обмена навигатора только читает и записывает данные в буфер обмена.

Так что я могу использовать что-то похожее на событие копирования:

  navigator.clipboard.readText()
    .then(async function (text) {
      await navigator.clipboard.writeText("<div>" + text + "</div>");
    })
    .catch(() => {
      ChromeSamples.log('Failed to read from clipboard.');
    });
}

Но есть ли способ использовать API буфера обмена для запуска нового события вставки с кодом, а не для вставки вручную пользователем с Ctrl + V?

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

Возможно ли это с помощью нового API или любых других альтернатив document.execCommand?

...