TransWikia.com

Как скопировать данные из буфера обмена в значение input

Stack Overflow на русском Asked by Imp3l on August 30, 2021

По нажатию на кнопку должен быть вставлен текст из буфера обмена, но выходит ошибка Cannot read property "clipboardData" of undefined.

const pasteFromBuffer = document.querySelector('.paste-button');
const textareaPaste = document.querySelector('.input');

function handlePaste(event) {
  const clipboardData = event.clipboardData || window.clipboardData;
  const pastedData = clipboardData.getData('Text');
  console.log(pastedData);
  textareaPaste.innerText = pastedData;
}

pasteFromBuffer.addEventListener('click', handlePaste);
<input class="input"></input>
<button class="paste-button">Paste</button>

One Answer

Вы можете воспользоваться clipboard API, сделав вот так:

const pasteFromBuffer = document.querySelector( ".paste-button")
const textareaPaste = document.querySelector(".input")

const handlePaste = async event => {
    const clipboardData = await navigator.clipboard.readText()
    textareaPaste.value = clipboardData
    console.log(textareaPaste.value)
}

pasteFromBuffer.addEventListener("click", handlePaste, false)

Имейте ввиду что большинство браузеров запросят у пользователя подтверждения прав доступа к данным clipboard.

Так же этот метод не будет работать из консоли, так как требует непосредственного действия пользователя, например, нажатия на кнопку.

Correct answer by Vasily on August 30, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP