JavaScript - imagen al clipboard en firefox

   
Vista:

imagen al clipboard en firefox

Publicado por diego (1 intervención) el 28/09/2009 14:53:50
Hola,

Quisiera saber la manera de hacer los siguiente: desde una pagina, cargar una imagen al clipboard del sistema del cliente desde firefox.
He podido hacerlo mediante javascript con ie, pero no encuentro la forma de hacerlo en ff.
Lo unico que puedo hacer en ff es agregar texto al clipboard.

He visto algunas soluciones por ahi, pero todas requieren del air framework y no quiero que el cliente se tenga que andar bajando este framework para visitar mi pagina.

Este es el codigo que utilizo para agregar un texto al clipboard del cliente desde ie y ff:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
function copy_clip(meintext)
{
 
	if (window.clipboardData){
 
		// the IE-manier
		window.clipboardData.setData("Text", meintext);
 
		// waarschijnlijk niet de beste manier om Moz/NS te detecteren;
		// het is mij echter onbekend vanaf welke versie dit precies werkt:
	}else if (window.netscape) {
 
		// dit is belangrijk maar staat nergens duidelijk vermeld:
		netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
 
		// maak een interface naar het clipboard
		var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
		if (!clip) return;
 
		// maak een transferable
		var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
		if (!trans) return;
 
		// specificeer wat voor soort data we op willen halen; text in dit geval
		trans.addDataFlavor('text/unicode');
 
		// om de data uit de transferable te halen hebben we 2 nieuwe objecten nodig   om het in op te slaan
		var str = new Object();
		var len = new Object();
 
		var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
 
		var copytext=meintext;
 
		str.data=copytext;
 
		trans.setTransferData("text/unicode",str,copytext.length*2);
 
		var clipid=Components.interfaces.nsIClipboard;
 
		if (!clip) return false;
 
		clip.setData(trans,null,clipid.kGlobalClipboard);
	}
 
	return false;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder