Reiner JS, ohne Inline-OnClick, für gepaarte Klassen "Inhalt - Kopieren-Taste". Wäre bequemer, wenn Sie viele Elemente haben)
(function(){
/* Erstellen des Textbereichs nur einmal, aber nicht jedes Mal */
let area = document.createElement('textarea');
document.body.appendChild( area );
area.style.display = "none";
let content = document.querySelectorAll('.js-content');
let copy = document.querySelectorAll('.js-copy');
for( let i = 0; i < copy.length; i++ ){
copy[i].addEventListener('click', function(){
area.style.display = "block";
/* Da die Klassen gepaart sind, können wir den [i]-Index der angeklickten Schaltfläche verwenden,
um den erforderlichen Textblock zu erhalten */
area.value = content[i].innerText;
area.select();
document.execCommand('copy');
area.style.display = "none";
/* dekorativer Teil */
this.innerHTML = 'Kopiert';
/* Pfeilfunktion ändert 'this' nicht, hier ist es immer noch die angeklickte Schaltfläche */
setTimeout( () => this.innerHTML = "Kopieren", 2000 );
});
}
})();
hr { margin: 15px 0; border: none; }
1111
Kopieren
2222
Kopieren
3333
Kopieren
Unterstützung für ältere Browser:
(function(){
var area = document.createElement('textarea');
document.body.appendChild( area );
area.style.display = "none";
var content = document.querySelectorAll('.js-content');
var copy = document.querySelectorAll('.js-copy');
for( var i = 0; i < copy.length; i++ ){
copyOnClick(i);
}
function copyOnClick(i){
copy[i].addEventListener('click', function(){
area.style.display = "block";
area.value = content[i].innerText;
area.select();
document.execCommand('copy');
area.style.display = "none";
var t = this;
t.innerHTML = 'Kopiert';
setTimeout( function(){
t.innerHTML = "Kopieren"
}, 2000 );
});
}
})();
hr { margin: 15px 0; border: none; }
1111
Kopieren
2222
Kopieren
3333
Kopieren