Salut à tous, voilà en ayant suivi le petit tuto sur la création d'une extension chrome je suis confontre à un problème.
Je voudrais en cliquant sur un bouton copier le text inclus dans le input.
Dans un premier temps j'ai ajouter dans mon manifeste des permissions pour "clipboardWrite" et "clipboardRead"
Dans mon js j'ai mis ceci (bout de code trouvé sur le net)
function copy(){
var copyDiv = document.getElementById('textcopy');
copyDiv.focus();
document.execCommand('SelectAll');
document.execCommand("Copy", false, null);
/*document.getElementById("textcopy").select();
document.execCommand("Copy", false, null);*/
}
document.addEventListener("DOMContentLoaded", function () {
document.getElementById("copy").onclick = copy;
});
Et dans mon HTML ceci
<input type="text" id="textcopy" value="azerty"><button id="copy">Copier</button>
<input type="text" id="textcopy" value="ytreza"><button id="copy">Copier</button>
Bon déjà le code fonctionne j'arrive à copier le 1er mais le deuxième ne fonctionne pas.
Auriez vous une idée ?
Un ID doit être unique. Donc la tu as 2 boutons avec le même ID, et Javascript prend le premier. Donc soit change ta méthode getById par Class ou alors utilise les attributs HTML5.
Merci de ta réponse je voudrais bien le faire en jquery mais je bloque sur le execCommand
Je ne veux pas le faire absolument en jquery, c'est que pour moi c'est plus simple. Sa fait un petit moment que je fait plus de vrai JS je suis un peu perdu
Eh beh c'est le moment de t'y remettre. Il faut perdre cette mauvaise habitude de passer systématiquement par jQuery pour tout et rien.
Sinon pour ton problème, je pense que @PallMallShow a identifié la source, a savoir qu'un ID se doit d'être unique.
C'est pour ca que à la base j'ai pris ce petit bout de code en JS. Mais la fonction copy avec la chrome extensions à l'air assez assardeuse
Pourquoi dis tu qu'elle est hasardeuse ? (et pas assardeuse x) )
En effet, comme je l'ai dis dans mon premier message ainsi que @betaWeb, il faut qu'un ID soit unique. Donc probablement que la fonction 'hasardeuse' vient de là.
Ne cherches pas, ton erreur vient soit des IDs en doublons, soit que Chrome ne supporte pas la fonction document.execCommand();
lorsque ça concerne les extensions (à vérifier).
Oui je sais que le prob viens de mes ID j'essai de faire passer en class mais j'ai plus de 200 lignes donc faut que j'automatise un peu.
Je suis entrain d'essayer de faire une gestion avec un rel sur le bouton copy par exemple
Bon j'ai beau essayer de mettre un get class sur mon bouton cliquer j'arrive pas à lui faire passer sur le second bouton
voici mon code actuel [https://jsfiddle.net/px7pfyru/]()