Copier un champ

Eléphant du PHP | 224 Messages

29 sept. 2009, 10:13

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 :)
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)

Eléphant du PHP | 224 Messages

29 sept. 2009, 13:36

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 :)
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)

ViPHP
ViPHP | 3607 Messages

29 sept. 2009, 14:31

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

Eléphant du PHP | 224 Messages

29 sept. 2009, 17:11

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...

@+ :)
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)

Eléphant du PHP | 224 Messages

30 sept. 2009, 02:28

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... :)
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)