@IvanLu
Начинающий веб-разработчик

Как сделать кнопку копировать в буфер обмена?

Добрый день!
У меня есть блок куда генерируется некий текстовый контент и мне нужно реализовать кнопку копировать но вылазит ошибка
Uncaught TypeError: result.select is not a function
at copyResult (script.js:60)
at HTMLButtonElement.onclick (index.html:15)
В чем может быть ошибка ?
Вот код https://codepen.io/IvaLu/pen/XWaypGM
  • Вопрос задан
  • 292 просмотра
Решения вопроса 2
delphinpro
@delphinpro Куратор тега CSS
frontend developer
<div class="option">
  <div id="result">TextContent</div>
  <button id="copy">Copy</button>
</div>

let result = document.getElementById("result");

let copy = document.getElementById("copy");

copy.addEventListener("click", function () {
  copyToClipboard(result.innerText);
});

function copyToClipboard(text, onComplete) {
  if (navigator.clipboard) {
    navigator.clipboard
      .writeText(text)
      .then(() => {
        if (typeof onComplete === "function") onComplete();
      })
      .catch((err) => {
        console.error("Copy fail", err);
      });
  } else {
    let area = document.createElement("textarea");
    document.body.appendChild(area);
    area.value = text;
    area.select();
    document.execCommand("copy");
    document.body.removeChild(area);
    if (typeof onComplete === "function") onComplete();
  }
}


В песочнице работать не будет
Ответ написан
@vladdimir
Верстальщик
Как-то так можно:
//...
	function copyResult() {
	    navigator.clipboard.writeText(result.textContent)
                .then(() => console.log('Done'))
                .catch((err) => console.log(err))
	}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы