Я использую 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?