|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3691
|
[javascript] e clipboard
Ho cercato in giro ma non sono molto soddifatto.
Lunedi' mi trovero' nella situazione di cosa consigliare ad un programmatore che dovra' sviluppare una minilibreria che ci permettera' di copiare via javascript alcune cose (testo per fortuna) direttamente nella clipboard. Il tutto ovviamente come sempre deve funzionare sotto IE, Firefox, Opera, Safari e qualunque altro Browser che possa piacere al cliente. Qualcuno ha esperienza in merito, senza doversi accartocciare con soluzioni che richiedano al cliente, per solo sta ca...ta, di installare qualcosa di strano o dover configurare il browser come se sapesse cosa vuol dire farlo?
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2006
Messaggi: 22461
|
ho trovato questo codice per ie
Codice:
// Microsoft Internet Explorer only // http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/clipboarddata.asp // var x = 'Whatever you want on the clipboard'; // window.clipboardData.setData('Text',x); Codice:
<script language="javascript" type="text/javascript"> <!-- 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); } alert("Following info was copied to your clipboard:\n\n" + meintext); return false; } //--> </script>
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3691
|
Per intanto grazie molte.
Mozilla purtroppo e' morto. Speriamo funzioni almeno su firefox. __ Confuso. E' Netscape che e' morto, non Mozilla.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. Ultima modifica di gugoXX : 09-02-2008 alle 22:28. Motivo: non mozilla netscape |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2006
Messaggi: 22461
|
se non mi sbaglio la sintassi di firefox è compatibile con quella di mozilla, ora la provo, vedo che succede
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:39.