Page 1 sur 1

Copier un champ

Posté : 29 sept. 2009, 10:13
par FredoMkb
Bonjour à tous :-)

Voilà, c'est un truc que j'ai déjà vu sur certains sites mais je ne sais pas comment ça fonctionne, et j'en aurais besoin pour une page perso, je m'explique :

Je voudrais donner la possibilité aux visiteurs de copier dans le presse-papier (pomme+c sur Mac) le contenu des différents champs, juste en cliquant sur un petit bouton (ou lien, peu importe), qui se trouverez à côté de chaque champ concerné.

Présenté autrement, voici un petit code Html d'exemple :
<label for="champ">Mon joli champ&nbsp;: </label>
<input type="text" name="champ" id="champ" value="" />
<input type="button" value="Copier" onclick="copier.le.contenu.du.champ" />
Je voudrais donc remplacer le "copier.le.contenu.du.champ" de l'attribut "onclick" par un code JavaScript permettant de copier le contenu du champ dans le presse-papier, évidemment, quelque soit le navigateur et la plate-forme du visiteur.

Quelqu'un aurait une idée du code JS nécessaire ou un lien pointant sur un page où cette question serait abordée ? :shock:

Merci à tous de vos lumières :)

Re: Copier un champ

Posté : 29 sept. 2009, 13:36
par FredoMkb
Bonjour :)

Alors, j'ai trouvé deux pistes possibles, mais malheureusement aucune ne semble fonctionner sous Safari sur Mac :

1. Piste utilisant "clipboardData" :
<label for="copier1">Mon joli champ&nbsp;: </label>
<input type="text" name="copier1" id="copier1" value="" />
<input type="button" value="Copier" onclick="window.clipboardData.setData('Text', document.getElementById('copier1').value);" />
2. Piste utilisant "execCommand" :
<label for="copier2">Mon joli champ&nbsp;: </label>
<input type="text" name="copier2" id="copier2" value="" />
<input type="button" value="Copier" onclick="document.getElementById('copier2').focus().select(); document.execCommand('copy');" />
Une idée pour que l'un de ces codes fonctionne correctement ?
Ou peut-être d'autres pistes à explorer ?

Merci à tous :)

Re: Copier un champ

Posté : 29 sept. 2009, 14:31
par jojolapine
Bonjour,
Si mes souvenir sont bons, je ne croit pas que celà soit possible de faire ça en javascript tout en fonctionnant sous les différents navigateurs existant...
Par contre en utilsiatn un petit peu de flash (juste pour la commande de copie dans le presse-papier), il me semble que c'est faisable...
Lien au hasard: http://www.jeffothy.com/weblog/clipboard-copy/

Edit: c'était à ce lien que je pensais: http://piranhaworld.free.fr/copier-dans ... refox.html

Re: Copier un champ

Posté : 29 sept. 2009, 17:11
par FredoMkb
Re...
Par contre en utilsiatn un petit peu de flash (juste pour la commande de copie dans le presse-papier), il me semble que c'est faisable...
Merci pour ces pistes... je viens rapidement de essayer de les adapter à mon cas de figure, mai je n'y arrive pas :(

Il va falloir que je reprenne ces codes à tête reposée pour essayer d'y voir un peu plus clair...

Merci encore... si jamais vous pensez à d'autres pistes, n'hésitez pas, je m'y remettrai un peu ce soir...

@+ :)

Re: Copier un champ

Posté : 30 sept. 2009, 02:28
par FredoMkb
Re...

Bon, ok, l'affaire est entendue, impossible de trouver quelque chose qui fonctionne correctement avec les différents navigateurs :(

J'ai essayé de bidouiller les codes dans tous les sens, mais rien n'y fait, ça ne fonctionne pas chez moi, aussi bien avec Safari qu'avec Firefox.

J'ai également passé plus de 2 heures à chercher d'autres pistes sur internet, plein de sites proposent des solutions, mais, dans l'ensemble, il n'y a que deux approches : une pour IE (avec deux variantes fonctionnelles "clipboardData" et "execCommand"), et une autre utilisant un mini fichier Flash pour les autres navigateurs.

Aucun des codes que j'ai trouvé n'a donné de résultats probants chez moi, donc je suis super déçu et un peu dégoutté que IE propose une fonctionnalité intégrée et que les autres navigateurs n'aient pas pensé à faire quelque chose de similaire.

Bref, je reste attentif à vos réponses, peut-être qu'on finira par trouver la perle rare fonctionnant sur tous les navigateurs et plate-formes... mais suis sceptique quand-même :?

En tout cas, merci Jojolapine pour ton aide... :)