Для того чтобы достать текст из буфера обмена (clipboard) в JavaScript, можно воспользоваться API браузера - Document.execCommand и ClipboardEvent.
Первый способ заключается в использовании метода "paste" события "clipboard" для обработки события вставки из буфера обмена. Вот пример кода:
document.addEventListener('paste', function(e) { var clipboardData = e.clipboardData || window.clipboardData; var pastedText = clipboardData.getData('text'); console.log(pastedText); });
В этом примере мы добавляем обработчик события "paste" к элементу document. Внутри обработчика мы получаем объект clipboardData, который содержит данные о вставленном тексте. Мы используем метод getData() для получения текста из буфера.
Второй способ - это использование API браузера - AsyncClipboard API (https://developer.mozilla.org/en-US/docs/Web/API/AsyncClipboard_API). Этот API предоставляет более мощный и гибкий способ работы с буфером обмена, но на данный момент он еще находится в стадии эксперимента и поддерживается не всеми браузерами.
Вот пример использования AsyncClipboard API:
navigator.clipboard.readText() .then(text => { console.log(text); }) .catch(err => { console.error('Failed to read clipboard contents: ', err); });
Этот код использует метод readText() объекта Clipboard API, который возвращает Promise с текстом из буфера обмена. Если чтение успешно, текст можно получить в блоке then(). Если чтение не удалось, ошибку можно обработать в блоке catch().
Важно отметить, что для использования AsyncClipboard API необходимо соблюдать требования безопасности, так как это чувствительная операция и может потребовать разрешений пользователя.
В целом, выбор способа доставания текста из буфера обмена в JavaScript зависит от ваших конкретных требований и поддержки браузеров, с которыми вы собираетесь работать.