Задать вопрос
@iddimon3

Скопировать текст?

У меня есть ссылка в HTML
И недоделанный код js

<a value="123" onclick='cop_text(123)' href='#<?echo $qq;?>'><?echo $qq;?></a>


function cop_text($zn) {
  document.execCommand("copy");
  alert("Скопировал текст: " + $zn);
}


Что нужно добавить в js для копирования?
  • Вопрос задан
  • 99 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
document.execCommand("copy") копирует то, что сейчас выделено.
Если текст на странице не выделен, то и ничего не скопируется.

Можно программно выделить текст на странице, а затем вызвать document.execCommand("copy")
Но это дичь, какая-то.
Более того, document.execCommand() вышла из употребления.

Так что можно, как белый человек, использовать navigator.clipboard.writeText()

navigator.clipboard.writeText("123")
Ответ написан
Комментировать
@StiflerProger
Я как-то давно писал метод для копирования. Года 2 назад это было, поэтому не скажу что и почему сделал так xD
но работает
function copyToClipboard(text) {
    let span = document.createElement('span');

    span.style.position = 'absolute';
    span.style.top = 0;
    span.style.zIndex = -999;
    span.style.opacity = 0;
    span.style.color = 'initial';
    span.style.fontSize = 'initial';
    span.style.whiteSpace = 'pre';

    span.appendChild(
      document.createTextNode(text)
    );

    document.body.appendChild(span);

    let range = document.createRange();
    let selection = window.getSelection();

    selection.removeAllRanges();
    range.selectNode(span);
    selection.addRange(range);

    let success;

    try {
      success = document.execCommand('copy');
    } catch(e) {
      success = false;
    }

    selection.removeAllRanges();

    document.body.removeChild(span);

    return success;
  }
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
26 дек. 2024, в 16:23
30000 руб./за проект
26 дек. 2024, в 16:23
100000 руб./за проект
26 дек. 2024, в 14:40
15000 руб./за проект