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

Пользователь

от gussie.jones , в категории: JavaScript , 2 года назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от guillermo , 2 года назад

@gussie.jones Я обычно использую для этого данную кроссбраузерную функцию в Javascript:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function copyToClipboard(text) {
    if (window.clipboardData && window.clipboardData.setData) {
        // Internet Explorer
        return window.clipboardData.setData("Text", text);
    }
    else if (document.queryCommandSupported && document.queryCommandSupported("copy")) {
        var textarea = document.createElement("textarea");
        textarea.textContent = text;
        textarea.style.position = "fixed";
        document.body.appendChild(textarea);
        textarea.select();
        try {
            return document.execCommand("copy");
        }
        catch (ex) {
            console.warn("Ошибка копирования в буфер обмена.", ex);
            return prompt("Скопировать в буфер обмена: Ctrl+C, Enter", text);
        }
        finally {
            document.body.removeChild(textarea);
        }
    }
}

copyToClipboard("test");


Пользователь

от hoyt.jerde , год назад

@gussie.jones 

Вы можете скопировать текст в буфер обмена с помощью следующего кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
function copyTextToClipboard(text) {
  var textArea = document.createElement("textarea");

  // Обеспечивает, чтобы не было видно элемента:
  textArea.style.position = 'fixed';
  textArea.style.top = 0;
  textArea.style.left = 0;
  textArea.style.width = '2em';
  textArea.style.height = '2em';
  textArea.style.padding = 0;
  textArea.style.border = 'none';
  textArea.style.outline = 'none';
  textArea.style.boxShadow = 'none';
  textArea.style.background = 'transparent';

  textArea.value = text;
  document.body.appendChild(textArea);
  textArea.select();

  try {
    var successful = document.execCommand('copy');
    var msg = successful ? 'successful' : 'unsuccessful';
    console.log('Copying text command was ' + msg);
  } catch (err) {
    console.log('Oops, unable to copy');
  }

  document.body.removeChild(textArea);
}


Чтобы скопировать текст, вызовите функцию следующим образом:

1
copyTextToClipboard('Текст, который вы хотите скопировать');


Обратите внимание, что этот код работает только в браузерах, которые поддерживают технологию буфера обмена (Clipboard API).