Soucis avec script JS pour copier:coller

Soucis avec script JS pour copier:coller - HTML/CSS - Programmation

Marsh Posté le 13-10-2005 à 12:11:42    

Salut
 
j'utilise un script js pour avoir un bouton qui permet de copier dans les presse papier tout le texte
 
ca marche niquel en tant normal sauf que mon champ se nomme "t[infos]" , et JS arrive pas a comprendre ca
seulement jai pas le choix je peux pas changer le nom
 
qqun aurais une manip ?
j'ai essayé de mettre le texte dans un champ hidden seulement ca marche pas
 

Code :
  1. <SCRIPT>
  2. function copy2Clipboard(obj)
  3. {
  4.    var textRange = document.body.createTextRange();
  5.    textRange.moveToElementText(obj);
  6.    textRange.execCommand("Copy" );
  7. }
  8. </SCRIPT>


 

Code :
  1. <FORM NAME=formulaire>
  2. <TEXTAREA NAME=t[infos]>Tapez votre texte ici !</TEXTAREA><BR>
  3. <a href="#null" onClick="copy2Clipboard(document.formulaire.t[infos])">copier</a>
  4. </FORM>

Reply

Marsh Posté le 13-10-2005 à 12:11:42   

Reply

Marsh Posté le 13-10-2005 à 14:45:03    

oulalalalalalalalalalalalalalalala
 
Déjà faudrait ajouter un peu de rigueur dans ton code, parce que c'est un merdier monstre :

<script type="text/javascript">
  function copy2Clipboard(obj)
  {
    var textRange = document.body.createTextRange();
    textRange.moveToElementText(obj);
    textRange.execCommand("Copy" );
  }
</script>
<div>
    <textarea id="tinfo">Tapez votre texte ici !</textarea><br>
    <button type="button" onClick="copy2Clipboard(document.getElementById('tinfos')">copier</button>
  </div>


Donc :

  • Rajout de l'attribut type sur l'élément script : si le navigateur ne sait pas le langage du script, ça peut poser problèmes.
  • Suppression du form : à quoi sert ton form ici ? Vu que il sert à rien, y'a pas de traitement par un script côté serveur
  • Remplacement du lien par un bouton : Un lien, ça sert à faire un lien (!) vers une autre page, pas à lancer une action. Un button est mieux
  • virage du t[name] : Nom vraiment bizarre pour un contrôle de formulaire [:johneh]  [:johneh] Remplacement par un id simple Et pis le name ici sert à rien, comme dit, si y'a rien côté serveur...
  • Virage du document.formulaire.t[infos], qui n'existe plus, et qui est du JavaScript de 1995, à dégager donc par document.getElementById


Valà ! :)

Message cité 1 fois
Message édité par FlorentG le 13-10-2005 à 14:47:06
Reply

Marsh Posté le 13-10-2005 à 14:48:09    

nycius a écrit :


<a href="#null" onClick="copy2Clipboard(document.formulaire.t[infos])">copier</a>


 
t[infos], c'est le nom du champ? On dirais un array associatif!
 
Sinon, essaie avec ceci:

Code :
  1. document.getElementById('t[infos]').innerHTML;


 
Oximore

Reply

Marsh Posté le 13-10-2005 à 14:52:46    

oximore a écrit :

t[infos], c'est le nom du champ? On dirais un array associatif!
 
Sinon, essaie avec ceci:

Code :
  1. document.getElementById('t[infos]').innerHTML;


 
Oximore


Perdu : un id ne peut pas contenir de crochets :

Citation :

ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-" ), underscores ("_" ), colons (":" ), and periods ("." ).

Reply

Marsh Posté le 13-10-2005 à 15:05:15    

oximore > cest un array
FlorentG > c'est ce que j'avais lu mais je voulais confirmation merci

Reply

Marsh Posté le 13-10-2005 à 15:24:12    

FlorentG a écrit :

<div>
    <textarea id="tinfo">Tapez votre texte ici !</textarea><br>
    <button type="button" onClick="copy2Clipboard(document.getElementById('tinfos')">copier</button>
</div>


 
Merci pour la correction FlorentG, je ne savais pas.
 
Ceci dit, je ne comprend pas comment tu as résolu le fait que son nom d'id (qui ne pouvait pas être changé  
selon nycius) qui est un array fonctionne dans ton exemple.  
Tu lui as mis un autre id à son textarea qui est un string (je pense que tu as fais une petite faute qd tu appelles la fonction js ('document.getElementById('tinfos')'), il y a un 's' de trop à 'tinfo'), et plus un array.
 
Est-ce que je n'ai rien compris? Oder?
 
Oximore

Reply

Marsh Posté le 13-10-2005 à 15:28:28    

Ah merde ouais, faute de frappe pour le 's' :D Sinon donc j'ai viré son name bizarre, j'ai viré donc les crochets :D

Reply

Marsh Posté le 13-10-2005 à 15:40:24    

Comme je suis intéressé par ce petit script, je l'ai fais fonctionné chez moi.
 
voici le code complet pour copier-coller:
 

Code :
  1. <script type="text/javascript">
  2.   function copy2Clipboard(obj)
  3.   {
  4.     var textRange = document.body.createTextRange();
  5.     textRange.moveToElementText(obj);
  6.     textRange.execCommand("Copy" );
  7.     document.getElementById('tinfo2').innerHTML = textRange.text;
  8.   }
  9. </script>
  10. <textarea id="tinfo">Tapez votre texte ici !</textarea><br>
  11. <button type="button" onClick="copy2Clipboard(document.getElementById('tinfo'));">copier</button>
  12. <br /><br />
  13. <textarea id="tinfo2"></textarea>


 
Ceci dit, la fonction

createTextRange()

ne fonctionne que pour Ie!?
Très dommage pour moi car je n'emploie que des fonctions qui fonctionnent partout.. :bounce:  
 
Oximore

Reply

Marsh Posté le 14-10-2005 à 01:57:33    

le copier coller dans le presse papier c'est une fonction valable que dans IE, et encore c'est extraordinaire que IE laisse passer une telle anerie.
 
je crois ke kangol a mis en place un truc sur son site, kan tu vas sur une page, il recupère le contenu de ton presse-papier.


---------------
Les CSS c'est bon mangez-en
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed