-1
votes

Comment copier une valeur calculée dans le presse-papier?

J'ai une formule qui calcule une valeur. Cette valeur que je veux insérer sur une feuille Excel. Pour le rendre confortable à l'utilisateur, je souhaite le mettre au presse-papiers automatiquement.

J'essaie de faire mes premiers pas dans JS et de rencontrer ce problème (probablement) très simple. Mais toutes les méthodes que j'ai trouvées sont liées aux valeurs brutes des étiquettes d'entrée HTML. Je n'ai jamais vu de fonctions de copie à presse-papier à partir de valeurs créées dans JS. xxx


0 commentaires

3 Réponses :


-1
votes
const copyToClipboard = str => {
  const el = document.createElement('textarea');  // Create a <textarea> element

  el.value = str;                                 // Set its value to the string that you want copied

  el.setAttribute('readonly', '');                // Make it readonly to be tamper-proof

  el.style.position = 'absolute';                 
  el.style.left = '-9999px';                      // Move outside the screen to make it invisible

  document.body.appendChild(el);                  // Append the <textarea> element to the HTML document

  const selected =            
      document.getSelection().rangeCount > 0        // Check if there is any content selected previously
      ? document.getSelection().getRangeAt(0)     // Store selection if found
      : false;                                    // Mark as false to know no selection existed before

  el.select();                                    // Select the <textarea> content

  document.execCommand('copy');                   // Copy - only works as a result of a user action (e.g. click events)

  document.body.removeChild(el);                  // Remove the <textarea> element

  if (selected) {                                 // If a selection existed before copying

    document.getSelection().removeAllRanges();    // Unselect everything on the HTML document

    document.getSelection().addRange(selected);   // Restore the original selection

  }
};

0 commentaires

0
votes

Essayez comme ça.

p>

function copyToClipboard(str) {
  var el = document.createElement('textarea');
   // Set value (string to be copied)
   el.value = str;
   // Set non-editable to avoid focus and move outside of view
   el.setAttribute('readonly', '');
   el.style = {position: 'absolute', left: '-9999px'};
   document.body.appendChild(el);
   // Select text inside element
   el.select();
   // Copy text to clipboard
   document.execCommand('copy');
   // Remove temporary element
   document.body.removeChild(el);
};

var EEFactor = 1*1;

copyToClipboard(EEFactor);


0 commentaires

0
votes

Il y a un exemple avec une excellente explication ici


0 commentaires