Ваш код работает просто отлично.Я не удалил ни одного вашего кода, я не знаю, что вы пытаетесь сделать, но вам, вероятно, это нужно для чего-то.Важно подчеркнуть, что код буфера обмена должен выполняться после того, как пользователь предпримет какое-либо действие (например, нажатие кнопки), это мера, позволяющая избежать троллинга / повышения безопасности.
function copyCredentials(elementId) {
var el = document.createElement('textarea');
el.setAttribute('readonly', '');
el.style.position = 'absolute';
el.style.left = '-9999px';
document.body.appendChild(el);
// note that you need to get .value instead
// of .innerHTML if target is input type
el.value = document.getElementById(elementId).innerHTML;
var selected = document.getSelection().rangeCount > 0
? document.getSelection().getRangeAt(0)
: false;
el.select();
// returns boolean
var successfulCopy = document.execCommand('copy');
if (!successfulCopy) {
alert('Something went wrong or no browser support!').
return;
}
if (selected) {
document.getSelection().removeAllRanges();
document.getSelection().addRange(selected);
}
}
document.getElementById('button').addEventListener('click', e => {
copyCredentials('text');
});
<b>Text to paste:</b>
<div id="text">
Hello World
</div>
<br />
<br />
<button id="button">Copy</button> <br />
<div>
<b>Paste here:</b> <br />
<textarea id="output" rows="10" cols="50"></textarea>
</div>