3 votes

Le javascript ne se copie pas dans le presse-papiers

J'ai une question, j'ai un code, qui fonctionne partiellement.

let dataName = "String"
navigator.clipboard
        .writeText(dataName) //push string into clipboard
        .then(() => {
          alert(dataName + "successfully copied");
          closeWindow()
          })
      .catch(() => {
        alert("something went wrong");
          });

Dans cette version, le code pousse dataName dans le presse-papiers et donne une alerte, après quoi il le ferme. Si je supprime l'alerte, il ferme la fenêtre, sans la copier dans le presse-papiers, sans aller dans le catch ("quelque chose s'est mal passé"). Je ne veux pas avoir l'alerte, il devrait juste pousser la chaîne dans le presse-papiers et la fermer. Note : Le code est intégré dans un HTML, qui est vide, sauf pour le script. Le code provient en partie de : Comment copier dans le presse-papiers en JavaScript ?

0voto

Patte Points 603

Si vous ajoutez un paramètre à la capture et enregistrez ce que vous recevez, vous obtiendrez l'erreur suivante DOMException: Document is not focused . Il faut donc que l'utilisateur ait le document en ligne de mire pour que cela fonctionne. navigator.clipboard.writeText("text") dans la console. Le code ci-dessous devrait fonctionner, mais stackoverflow l'empêche de fonctionner et donne une erreur

DOMException : L'API Presse-papiers a été bloquée en raison d'une politique de permissions appliquée au document actuel. Voir lien d'erreur pour plus de détails.

const copy = () => {
navigator.clipboard
  .writeText("some text") //push string into clipboard
  .then((e) => {
    alert(e + "successfully copied");
    closeWindow()
  })
  .catch((e) => {
    console.log(e)
  });
}

<button onClick="copy()">Click me</button>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X