Как скопировать в буфер обмена JavaScript - PullRequest
0 голосов
/ 05 ноября 2019

Моя репутация слишком низкая, чтобы комментировать оригинальную тему. https://stackoverflow.com/a/39643244/10651767

Когда я использую функцию copyToClipboard(val), где val берется из локального хранилища, все, что я получаю в буфере обмена, это строка "val", а не значение переменной val.

val= localStorage.getItem("val");
copyToClipboard(val);

1 Ответ

2 голосов
/ 05 ноября 2019

Теперь есть API-интерфейс буфера обмена, который вы должны использовать вместо создания элементов dom и вызова execCommand, который больше не работает, но я не исследовал, чтобы быть уверенным.

document.querySelector('button').addEventListener('click', () => {
  let copyText = 'Random ' + Math.random();
  navigator.permissions.query({name: "clipboard-write"})
    .then(result => result.state == "granted" || result.state == "prompt")
    .then(() => navigator.clipboard.writeText(copyText))
    .then(() => console.log('Copied:', copyText))
    .catch(e => console.log('Failed to copy because:', e));
});
<button>Copy random text</button>
...