The following example shows you how you can copy text from a Flex application to the operating system’s clipboard by using the static System.setClipboard() method.

Full code after the jump.

<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2008/01/30/copying-text-to-the-operating-system-clipboard-in-flex/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="vertical"
        verticalAlign="middle"
        backgroundColor="white">
 
    <mx:Script>
        <![CDATA[
            import mx.controls.Alert;
 
            private function button_click():void {
                System.setClipboard(richTextEditor.text);
                Alert.show("Done");
            }
        ]]>
    </mx:Script>
 
    <mx:ApplicationControlBar dock="true">
        <mx:Button id="button"
                label="Copy text to clipboard"
                toolTip="Click here to copy the contents of the RichTextEditor control to the OS clipboard."
                click="button_click();" />
    </mx:ApplicationControlBar>
 
    <mx:RichTextEditor id="richTextEditor"
            text="The quick brown fox jumped over the lazy dog."
            width="100%"
            height="100%" />
 
</mx:Application>

View source is enabled in the following example.

 
Tagged with:
 
About The Author

Peter deHaan

Peter deHaan currently works for Adobe on the Flex SDK QA team. While not working on Flex, Flash, and ColdFusion applications, Peter enjoys making up bios and writing in 3rd person. Peter's rarely updated blog can be found at blogs.adobe.com/pdehaan/, actionscriptexamples.com, airexamples.com, and coldfusionexamples.com.

23 Responses to Copying text to the operating system clipboard in Flex

  1. PaulH says:

    might be good to show an example of clearing the clipboard?

  2. kanu says:

    This is the example for copying your elements from AIR and paste in to desktop,is there’s any way of dragging your elements from AIR to desktop.

  3. Sujan says:

    This is a perfect example to copy text into system clipboard and works perfectly for me.

    Is there a way to get text from system clipboard without using Adobe AIR? I have been trying to do that but all my efforts are in vain.

    I wonder if I am the first one to face this problem. The combination of Ctrl + V doesn’t work perfectly in Mozilla Firefox and I want to overwrite the event manually. And I need to get the text from System clipboard.

    Can anyone please help me with that.

  4. Tom says:

    You cant man! Its privacy data! But I believe in flash 10 adobe allows to access to user disk so maybe… be patient!

  5. Dante says:

    Does anyone know how to prevent user copying to clipboard from Flex application ?

  6. Mahesh D says:

    I think the above example shows how to copy the data from the text box to clipboard.
    I am using .net 2005 and i want the same functionality of copying the data in clipboard i have used the command System.setClipboard(‘some text’) in JavaScript but it work in IE but not in Firefox.
    Please i need help about clipboard copy functionality especially for Firefox browser.

  7. Suresh Pawar says:

    Using System.setClipboard("String"); we can set contents to clipboard.
    Now i need to clear the clipboard contents.
    Is there any way to clear clipboard contents?

  8. kolo says:

    hi,

    how can I do this setClipboard function with rollOver the button?

    • Peter deHaan says:

      @kolo,

      “Certain actions, such as those that display a pop-up window, may only be invoked upon user interaction, for example by a mouse click or button press.”

      It looks like you can only set clipboard contents based on a mouse click or button press and not a simple rollover.

      Peter

  9. kolo says:

    Alert.show is pop-up window and you can invoke this with rollOver…

    • Peter deHaan says:

      Yeah, I think by “pop-up window” they meant more like FileReference upload or download actions, full screen, and apparently clipboard access. Otherwise I assume when a SWF loaded, the rogue site could set you fullscreen, erase your clipboard contents, and try downloading a file.

      Peter

  10. kolo says:

    Do U have any idea how to handle this “rollOver” problem. I need to copy text from RichTE without clicking:( Maybe it is possible to implement javascript or java functionality? Any Idea?

    • Peter deHaan says:

      It may be possible to copy text to the clipboard using JavaScript, but I haven’t looked at that in a long time, and I’m not certain on how cross-browser friendly that would be (may require different setups for Firefox/IE/Safari/Chrome/Opera/etc). Once you figure out the JavaScript side, you could try calling the JS methods from ActionScript using the ExternalInterface class in a rollOver event handler.

      Or, just use a mouse “click” instead of “rollOver” and you’re done. ;)

      Peter

  11. kolo says:

    Is it possible to do “ctrl+a” on text in RichTE with button?

    • Peter deHaan says:

      You should be able to do something using the setSelection() method on the inner TextArea control, as seen in the following example:

      private function button_click():void {
          richTextEditor.textArea.setSelection(0, richTextEditor.text.length);
          System.setClipboard(richTextEditor.text);
          Alert.show("Done");
      }

      Peter

  12. kolo says:

    I cant do click. I am doing a project for paralised people and they cant use their hands to do click.

  13. kolo says:

    THX for your help.

  14. kolo says:

    OK I HAVE IT! Maybe it will help someone. It works only in IE but it works:D
    FLex code:

    private function jsSend():void{
        if (ExternalInterface.available){
        	s=richTextEditor.text;
        	ExternalInterface.call("copyT",s);
        }
    }

    Javacript:

    function copyT(s)  
    {  
        if(window.clipboardData)  
        {  
        window.clipboardData.setData('text',s);  
        }  
        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='';  
        }  
        alert('The text is copied to your clipboard...');  
        return false;  
    }
  15. Puneet Tuli says:

    Hi,

    Nice Example. Very helpful for me!!!!

    I need your help!!!

    I want to perform cut, copy and paste operations in my application. How can I paste the text copied in the clipboard to the text area in flex appliaction. Waiting for your response!!!!!

  16. Chuck says:

    I have formmated text in my Flex 3.5 TextArea (line breaks) and when I copy this to the clipboard I lose the formatting. Is there a way to maintain the formatting when copying to the clipboard?

  17. prithveesingh says:

    How to copy only selected text instead of whole text?

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Anti-Spam Protection by WP-SpamFree