zoukankan      html  css  js  c++  java
  • Flex 文本控件实现自定义复制粘贴

    由于添加了自定义右键菜单,导致Textinput控件默认的右键复制粘贴功能被屏蔽了。最后通过JS脚本实现这个功能,参考代码如下

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
     3                xmlns:s="library://ns.adobe.com/flex/spark" 
     4                xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="init()">
     5     <s:layout>
     6         <s:VerticalLayout/>
     7     </s:layout>
     8     <fx:Declarations>
     9         <!-- 将非可视元素(例如服务、值对象)放在此处 -->
    10         <fx:XML id="jsxml" >
    11             <script>
    12                 <![CDATA[
    13                 
    14                     function clipboardOperator(type,browsername,txt){
    15                         if(type!="init"){
    16                             if(type=="copy"){
    17                                 window.clipboardData.setData("Text", txt);
    18                                 return;
    19                             }
    20                             else if(type=="paste"){
    21                                 var clipboard=window.clipboardData.getData("Text"); 
    22                                 if(clipboard == null){
    23                                     alert('您的剪切板中没有任何文本内容');
    24                                     return ;
    25                                 }
    26                                 else
    27                                     return clipboard;        
    28                             }
    29                         }
    30                     }
    31                 ]]>
    32             </script>
    33         </fx:XML>
    34     </fx:Declarations>
    35     <fx:Script>
    36         <![CDATA[
    37             import Class.URLUtil;
    38             
    39             import flash.external.ExternalInterface;
    40             
    41             import flash.desktop.Clipboard;
    42             import flash.desktop.ClipboardFormats;
    43             import mx.controls.Alert;
    44             
    45             private var browsername:String=URLUtil.getBrowserName();
    46             
    47             private function init():void{
    48                 
    49                 lbpaste.text=ExternalInterface.call(jsxml, "init"); 
    50             }
    51             
    52             protected function btncopy_clickHandler(event:MouseEvent):void
    53             {
    54                 //内部复制功能
    55                 Clipboard.generalClipboard.clear();
    56                 Clipboard.generalClipboard.setData(ClipboardFormats.TEXT_FORMAT,txt.text,false);
    57                 //调用JS脚本实现复制
    58 //                ExternalInterface.call("copypasteOperator","copy", txt.text);
    59             } 
    60             
    61             protected function btnpaste_clickHandler(event:MouseEvent):void
    62             {
    63                 lbpaste.text=ExternalInterface.call("clipboardOperator","paste",browsername);
    64             }
    65         ]]>
    66     </fx:Script>
    67     <s:TextInput id="txt" text="aaa"/>
    68     <s:Button id="btncopy" label="复制" click="btncopy_clickHandler(event)"/>
    69     <s:Button id="btnpaste" label="粘贴" click="btnpaste_clickHandler(event)"/>
    70     <s:Label id="lbpaste"/>
    71 </s:Application>

    注:目前只支持IE和搜狗浏览器

  • 相关阅读:
    sqlserve 数据库8G log文件也有10来g 按日期删除 方法
    phpstrom xdebug phpstudy调试,跳不到设置断点的原因,以及配置方法
    用php做管理后台
    springmvc 拦截器与用户验证token
    sqlservei 日志文件清除
    c#gridcontrol 的一些设置
    MySQL联接查询算法(NLJ、BNL、BKA、HashJoin)
    MySQL千万级数据库查询怎么提高查询效率
    聚簇索引(Clustered Index)和非聚簇索引 (Non- Clustered Index)
    聚集索引和非聚集索引
  • 原文地址:https://www.cnblogs.com/Anlycp/p/3423308.html
Copyright © 2011-2022 走看看