Comment copier du texte d’un div dans le presse-papier

Voici mon code pour quand l’utilisateur clique sur ce bouton:

 

Comment copier le texte à l’intérieur de cette div?

 
Text To Copy

Les deux vont comme un charme :),

  1. JAVASCRIPT:

     function CopyToClipboard(containerid) { if (document.selection) { var range = document.body.createTextRange(); range.moveToElementText(document.getElementById(containerid)); range.select().createTextRange(); document.execCommand("copy"); } else if (window.getSelection) { var range = document.createRange(); range.selectNode(document.getElementById(containerid)); window.getSelection().addRange(range); document.execCommand("copy"); alert("text copied") }} 

Aussi en html,

  
Text To Copy

J’ai essayé la solution proposée ci-dessus. Mais ce n’était pas assez multi-navigateur. J’avais vraiment besoin d’EI11 pour travailler. Après avoir essayé je dois:

   
Click to copy

Testé avec Firefox 57, Chrome 63, Opera 49, ie11 et seul le bord ne fonctionnait pas.

La réponse acceptée ne fonctionne pas lorsque vous devez copier plusieurs éléments, chacun avec un bouton “Copier dans le Presse-papiers” distinct. Après avoir cliqué sur un bouton, les autres ne fonctionneront pas.

Pour les faire fonctionner, j’ai ajouté du code à la fonction de réponse acceptée pour effacer les sélections de texte avant d’en faire une nouvelle:

 function CopyToClipboard(containerid) { if (window.getSelection) { if (window.getSelection().empty) { // Chrome window.getSelection().empty(); } else if (window.getSelection().removeAllRanges) { // Firefox window.getSelection().removeAllRanges(); } } else if (document.selection) { // IE? document.selection.empty(); } if (document.selection) { var range = document.body.createTextRange(); range.moveToElementText(document.getElementById(containerid)); range.select().createTextRange(); document.execCommand("copy"); } else if (window.getSelection) { alert(containerid); var range = document.createRange(); range.selectNode(document.getElementById(containerid)); window.getSelection().addRange(range); document.execCommand("copy"); alert("text copied") } } 

Ajouter le lien en tant que réponse pour attirer davantage l’attention sur le commentaire d’Aaron Lavers sous la première réponse.

Cela fonctionne comme un charme – http://clipboardjs.com . Ajoutez simplement le fichier clipboard.js ou min. Lors du lancement, utilisez la classe contenant le composant HTML sur lequel cliquer et transmettez simplement l’identifiant du composant avec le contenu à copier, à l’élément click.