Rechercher : dans
Par :

[JavaScript] Fonction copier avec Firefox

Dernière réponse le 13 nov 2009 à 14:53:16 Pico51, le 13 nov 2009 à 10:11:22 
 Signaler ce message aux modérateurs

Bonjour,

Cela fait un moment que je cherche comment copier un texte dans le presse papier avec Firefox. La fonction window.clipboardData.setData ne fonctionnant qu'avec IE, j'ai donc cherché et j'ai trouvé plusieurs solutions alternatives :
- Le plugin JQuery.copy qui ne marche pas !
- L'utilisation d'un fichier Flash qui ne marche pas ! (j'en ai même utilisé plusieurs)

J'aimerais savoir si quelqu'un a déjà réussi et s'il pouvait poster son code (JS + HTML, car on ne trouve souvent que le JS).

Voici, si vous le désirez, le dernier code que j'ai testé (il marche, bien sûr, sur IE):

<html>
<body>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
function copy()
{
	copy_to_clipboard($('#nom').val());
}

function copy_to_clipboard(text)  
{  
     if(window.clipboardData)  
     {  
     window.clipboardData.setData('text',text);  
     }  
     else  
     {  
         var clipboarddiv=document.getElementById('divclipboardswf');  
		 
     if(clipboarddiv==null)  
     {  
        clipboarddiv=document.createElement('div');  
        clipboarddiv.setAttribute("name", "divclipboardswf");  
        clipboarddiv.setAttribute("id", "divclipboardswf");  
        document.body.appendChild(clipboarddiv);

     }  
        clipboarddiv.innerHTML='<object width="0" height="0"><PARAM NAME=FlashVars VALUE="txtToCopy='+ text +'"><param name="movie" value="copyButton.swf"><embed src="copyButton.swf" flashvars="txtToCopy='+ text +'" width="0" height="0"></embed>';
     }  
     alert('The text "'+ text +'" is copied to your clipboard...');  
     return false;  
 }  
-->
</script>
<input type="text" id="nom" />
<input type="button" id="button" value="Copier" onClick="copy();"/>
<input type="button" value="Test" onClick="test();" />
<div id="divclipboardswf">
</div>
</body>
</html>


Je vous remercie de votre aide.
S'il vous plaît, exprimez-vous correctement, vous aurez plus de chances d'obtenir une réponse.
Pico ;)
Configuration: Windows Vista Pro SP2 32 bits || Linux Ubuntu 9.04

Intel Core 2 Duo T5750 (2x2GHz)
2 Go RAM

Meilleures réponses pour « [JavaScript] Fonction copier avec Firefox » dans :
[Firefox] Personnaliser les pages web avec Greasemonkey VoirC'est quoi, GreaseMonkey ? Exemple 1 Exemple 2 XPath Fonctions utilitaires removeElement() removeAttributeOfElement() setAttributeOfElement() injectCSS() Exemple 3 Liens C'est quoi, GreaseMonkey ? GreaseMonkey est une extension...
Quelle touche utiliser pour faire une copie d'écran au clavier ? VoirPour sauvegarder dans une image (jpg, png...) ou dans un document (doc, odt...) ce que l'on voit à l'écran, il existe une touche sur tous les claviers qui permet de capturer ce qui est affiché. Chaque clavier est différent, ceci est encore plus...
Javascript - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Cette notion de sous-programme est généralement appelée fonction...
Javascript - l'objet Array VoirLes particularités de l'objet Array L'objet Array est un objet du noyau Javascript permettant de créer et de manipuler des tableaux. Voici la syntaxe à utiliser pour créer une variable tableau : var x = new Array(element1[, element2, ...]); Si...
Javascript - L'objet Math VoirLes particularités de l'objet Math L'objet Math est, comme vous l'imaginez, un objet qui a de nombreuses méthodes et propriétés permettant de manipuler des nombres et qui contient des fonctions mathématiques courantes. Quelque soit la méthode ou la...

1

Atropa, le 13 nov 2009 à 10:32:29

Bonjour tu peux peut être te servir de ça !

https://developer.mozilla.org/en/Rich-Text_Editing_in_Mozill­a

Répondre à Atropa

7

Pico51, le 13 nov 2009 à 14:50:50

J'ai enfin trouvé la solution, merci tout de même Atropa.

Je la posterai si j'y arrive ; apparemment, il y a de légers bugs. S'il vous plaît, exprimez-vous correctement, vous aurez plus­ de chances d'obtenir une réponse.
Pico ;)

Répondre à Pico51

8

Pico51, le 13 nov 2009 à 14:51:49

Parie 1 :

// Cette fonction sert à copier dans IE
function copy(text)
{
	window.clipboardData.setData("Text", text);
}

// On vérifie le nom du navigateur
if(navigator.appName=="Microsoft Internet Explorer")
{
	var ie = true;
}
else
{
	var ie = false;
}

var i = 'identifiant';
var j = 'autre_identifiant';

/* Dans le cas de IE, je met le contenu que je veux copier en paramètre de la fonction copy */
if(ie)
	document.getElementById(j).innerHTML = '<a href="#" onClick="copy(''+ document.getElementById(i).innerHTML +'')">Copy</a>';

/* Avec Firefox, j'utilise un fichier swf qui va me permettre de copier le contenu souhaité dans le presse papier*/
else
	document.getElementById(j).innerHTML = "<object width='60' height='20'><PARAM NAME=FlashVars VALUE='txtToCopy="+ document.getElementById(i).innerHTML +"'><param name='movie' value='copyButton.swf'><embed src='copyButton.swf' flashvars='txtToCopy="+ document.getElementById(i).innerHTML +"' width='60' height='20'></embed>";

--
S'il vous plaît, exprimez-vous correctement, vous aurez plus de chances d'obtenir une réponse.
Pico ;)

Répondre à Pico51

10

 Pico51, le 13 nov 2009 à 14:53:16

Le code HTML est donc :

<td id='identifiant>Texte à copier</td>
<td id='autre_identifiant'></td>


Dans mon cas, j'utilise un tableau (pour ceux qui ne l'aurait pas remarqué :) ) mais ce n'est pas obligatoire.

Vous pouvez télécharger le fichier swf ici : http:// www . media fire . com/?ogt1uoyyl1m (supprimer les espaces).

Merci pour ceux qui ont pris le temps de chercher.
En espérant que cela servent à d'autres (et en espérant que ce message pourra être enfin posté !!!) S'il vous plaît, exprimez-vous correctement, vous aurez plus de chances d'obtenir une réponse.
Pico ;)

Répondre à Pico51