Ik ben nog niet zo bekend met javascript en ik kom dus ook ergens niet uit. Ik wil de inhoud van een div kopiƫren naar je klembord als je op een button klikt. Maar wanneer ik onderstaande code uitvoer staat "document.getElementById("FormNieuwCSR-Alert")" in mijn klembord ipv de inhoud van de div haha.

Iemand idee hoe ik de inhoud krijg?

var copy = document.getElementById("FormNieuwCSR-Alert").textContent; heb ik ook al geprobeerd maar zonder succes.


var range = document.createRange();
range.selectNode(document.getElementById("FormNieuwCSR-Alert"));
window.getSelection().addRange(range);
document.execCommand("Copy");
alert("text copied");
Thanks en dat voorbeeld werkt goed als je een input veld gebruikt.
Maar ik wil de inhoud van een div naar het klembord kopieren en dan moet je een range aanmaken.

Ik lees ook overal dat IE er anders in is dan Chrome. Het is me helaas nog niet gelukt.

[size=xsmall]Toevoeging op 14/09/2017 15:51:06:[/size]

Uiteindelijk maar deze library gebruikt.
Werkt goed: https://davidwalsh.name/clipboard
Volgens mij komt het uiteindelijk allemaal hier op neer:


  function copyStr(str){
    var result = false,node = document.createTextNode(str),range = document.createRange(),selection = window.getSelection();
    try{
      document.body.appendChild(node);
      selection.removeAllRanges();
      range.selectNodeContents(node);
      selection.addRange(range);
      result = document.execCommand('copy');
      document.body.removeChild(node);
    }
    catch(e){
      console.error(e);
    }
    return result;
  }


Let wel op dat je 'copy' actie het gevolg van een gebruikersactie moet zijn (klik ergens op). Je mag niet zomaar 'vanuit het niets' een kopieer actie starten.

Reageren