Comment copier le contenu d’une div dans le presse papier sans flash

C’est ça 🙂 J’ai une div avec l’id #toCopy et un bouton avec l’id #copy . Quel est le meilleur moyen de copier le contenu #toCopy dans le presse-papiers en appuyant sur #copy ?

MISE À JOUR DE RÉPONSE Javascript a été restreint d’utiliser le presse-papiers, au début. mais de nos jours, il supporte les commandes copier / coller. Voir la documentation de mozilla et caniuse.com.

document.execCommand('paste') 

assurez-vous de prendre en charge les navigateurs qui ne le font pas.

https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand http://caniuse.com/#search=command

Le Javascript n’est pas autorisé à utiliser le presse-papier, mais d’autres plugins comme Flash ont access.

Comment copier dans le presse-papiers en JavaScript?

Vous pouvez copier dans le Presse-papiers presque dans n’importe quel navigateur à partir d’ éléments d’ entrée uniquement (éléments .value propriété .value ), mais vous ne pouvez pas .value d’éléments tels que

,

, … (éléments .innerHTML propriété).

Mais j’utilise cette astuce pour le faire:

  1. Créez un élément d’entrée temporaire, par exemple
  2. Copier innerHTML de

    vers la nouvelle

  3. Copier la .value de dans le presse-papier
  4. Supprimer l’élément temporaire nous venons de créer
 function CopyToClipboard (containerid) { // Create a new textarea element and give it id='temp_element' var textarea = document.createElement('textarea') textarea.id = 'temp_element' // Optional step to make less noise on the page, if any! textarea.style.height = 0 // Now append it to your page somewhere, I chose  document.body.appendChild(textarea) // Give our textarea a value of whatever inside the div of id=containerid textarea.value = document.getElementById(containerid).innerText // Now copy whatever inside the textarea to clipboard var selector = document.querySelector('#temp_element') selector.select() document.execCommand('copy') // Remove the textarea document.body.removeChild(textarea) } 
 
This text will be copied to your clipboard when you click the button!