web-dev-qa-db-fra.com

La copie JavaScript dans le presse-papier ne fonctionne pas

J'ai une fonction dans mon script qui me donne une erreur. Le but de cette fonction est de copier du texte depuis un panneau statique (pas une zone de texte ou une entrée) avec l’événement onClick.

Uncaught TypeError: copyText.select n'est pas une fonction

Ce que je veux, c'est que l'utilisateur puisse cliquer sur le texte et le copier dans son presse-papiers.

Peut-être que vous pouvez offrir une meilleure fonction qui fonctionne?

https://codepen.io/abooo/pen/jYMMMN?editors=1010

function myFunction() {
  var copyText = document.getElementById("display");
  copyText.select();
  document.execCommand("Copy");
  alert("Copied the text: " + copyText.value);
}

De w3schools

8
user7570296

Grande réponse par Intervalia. 

Petite amélioration, parfois, l'élément cliqué n'est pas celui que vous voulez copier.
Je vous suggère donc de transmettre l'identifiant de l'élément que vous souhaitez copier. 

<button onClick='copyText("display")'> Copy </button>
<h1 id='display'> Text Sample </h1>

Et ensuite, dans la première ligne de votre fonction, faites 

element = document.getElementById(element); 

Pas beaucoup de différence mais je pense que c'est plus utile de cette façon.

1
Hike Nalbandyan

La méthode select() permet de sélectionner le contenu des champs de texte. cela ne fonctionnera pas sur l'élément h1.

0
mac