Вот мой код, он работает. Я проверял. Зайди посмотри. Тоже нашёл где-то на просторах интернета.
https://alekssamos.github.io/wa.html?
function fallbackCopyTextToClipboard(text) {
var textArea = document.createElement("textarea");
textArea.value = text;
textArea.style.position="fixed"; //avoid scrolling to bottom
document.body.appendChild(textArea);
textArea.focus();
textArea.select();
try {
var successful = document.execCommand('copy');
var msg = successful ? 'successful' : 'unsuccessful';
console.log('Fallback: Copying text command was ' + msg);
} catch (err) {
console.error('Fallback: Oops, unable to copy', err);
}
document.body.removeChild(textArea);
}
function copyTextToClipboard(text) {
if (!navigator.clipboard) {
fallbackCopyTextToClipboard(text);
return;
}
navigator.clipboard.writeText(text).then(function() {
console.log('Async: Copying to clipboard was successful!');
}, function(err) {
console.error('Async: Could not copy text: ', err);
});
}
А вызывать так:
copyTextToClipboard( "Твой текст" );
Нужно обязательно на пользовательское событие, например, onclick на кнопку навешивать, иначе сам по себе, допустим сразу после загрузки страницы или через время может не сработать.