做JS的都知道,如果不考虑浏览器的兼容问题,其实,JS本身的window.clipboardData对象是可以做到复制内容到剪贴板的功能,但除了IE浏览器,FF和Chrome浏览器都不支持。现在为了浏览器的兼容问题,只能使用Flash来做这功能了。

       Flash Player在10.0之前的版本,如果要实现将内容复制到系统剪贴板:
                   System.setClipboard("内容")
       这样一句简单的代码就可以。但从Flash Player10.0之后,引入了不少新的安全特性,对于跨域的敏感操作都需要用户的参与。只有当用户触发点击或按键才能调用剪贴板复制功能等,所以以前的这种做法,由JS调用SWF的一个函数的做法已经失效了。
       其实,要解决新的特性带来的麻烦问题,现在网上有很多的文章都已经说到如何解决。但都是一个道理,就是flash中放一个让用户能够点击到的显示对象,这个根据不同的需求,有的是做一个flash button或sprite绘制一个透明的显示对象放置在某个要触发复制的地方,在这里不多说这种解决方案。有兴趣的可以直接百度ZeroClipboard。
      这里要说到flash player10.0之后新增的Clipboard类,该类位于flash.desktop包下。Clipboard类提供一个容器,用于通过剪贴板传输数据和对象。通过静态generalClipboard属性可以访问操作系统剪贴板,该类不但可以做到设置系统剪贴板,还可以清除和获取剪贴板内容,而且在设置内容时,可以指定数据格式。
      Clipboard. generalClipboard.setData(ClipboardFormats.TEXT_FORMAT,string);  向系统剪贴板添加文本内容
      Clipboard. generalClipboard.clearData(ClipboardFormats.TEXT_FORMAT)   删除指定的文本数据;
      Clipboard. generalClipboard.getData(ClipboardFormats.TEXT_FORMAT)  获取指定的文本数据;
      但Clipboard类的使用也需要用户的参与,setData与clearData方法的调用,可以像上面说到的,在flash 中绘制一个透明的显示对象,放置在触发的位置让用户点击,当触发Click事件后做相应的处理;getData则不同了,Clipboard.generalClipboard对象只能在处理flash.events.Event.PASTE事件时读取。

Flash剪贴板功能的更多相关文章

  1. 【转】js实现复制到剪贴板功能,兼容所有浏览器

    两天前听了一个H5的分享,会议上有一句话,非常有感触:不是你不能,而是你对自己的要求太低.很简单的一句话,相信很多事情不是大家做不到,真的是对自己的要求太低,如果对自己要求多一点,那么你取得的进步可能 ...

  2. 【原】js实现复制到剪贴板功能,兼容所有浏览器

    两天前听了一个H5的分享,会议上有一句话,非常有感触:不是你不能,而是你对自己的要求太低.很简单的一句话,相信很多事情不是大家做不到,真的是对自己的要求太低,如果对自己要求多一点,那么你取得的进步可能 ...

  3. 黄聪:JS实现复制到剪贴板功能,兼容所有浏览器(转)

    两天前听了一个H5的分享,会议上有一句话,非常有感触:不是你不能,而是你对自己的要求太低.很简单的一句话,相信很多事情不是大家做不到,真的是对自己的要求太低,如果对自己要求多一点,那么你取得的进步可能 ...

  4. Zero Clipboard - 跨浏览器兼容的“复制到剪贴板”功能

    开发中经常会用到复制的功能,在 IE 下实现比较简单,但要想做到跨浏览器比较困难了. 本文将介绍一个跨浏览器的库类 Zero Clipboard ,它利用 Flash 进行复制,所以只要浏览器装有 F ...

  5. JQuery实现复制到剪贴板功能

    在网页中实现复制到剪贴板功能,有两种方法, 第1种方法:使用JavaScript自带的方法,但是这种方法只能在IE下使用. document.execCommand("Copy") ...

  6. JS pc端和移动端共同实现复制到剪贴板功能实现

    JS pc端和移动端实现复制到剪贴板功能实现 在网页上复制文本到剪切板,一般是使用JS+Flash结合的方法,网上有很多相关文章介绍.随着 HTML5 技术的发展,Flash 已经在很多场合不适用了, ...

  7. 【转】js插件zClip实现复制到剪贴板功能

    相信这个功能大家平时上网经常能碰到,以前也没怎么留意怎么实现的,直到项目中需要. 网上一搜一大堆,单纯使用js方法也不是没有,但是由于各浏览器的安全机制不同,不是跨浏览器的.去看了几个常用的网站,都是 ...

  8. clipboard复制剪贴板功能,以及用requirejs时报错---Uncaught ReferenceError: Clipboard is not defined

    zeroclipboard是走的flash插件,手机浏览器是不支持的,所以不得不舍弃之,用clipboard,clipboard不需要flash就可以完成复制剪切等功能,而且可以兼容pc,移动端,下面 ...

  9. 兼容所有浏览器的JQuery zClip插件实现复制到剪贴板功能

    相信这个功能大家平时上网经常能碰到,以前也没怎么留意怎么实现的,直到项目中需要. 网上一搜一大堆,单纯使用js方法也不是没有,但是由于各浏览器的安全机制不同,不是跨浏览器的.去看了几个常用的网站,都是 ...

随机推荐

  1. mysql max_allowed_packet过小导致的prepare失败

    最近公司一台阿里云上模拟环境突然好好地就出错了额,总提示:"Unknown prepared statement handler (stmt) given to DEALLOCATE PRE ...

  2. 微信CRM六大模块的详解

    微信团队一直强调企业微信的主要功能是服务而非营销工具,微信5.0将公众号区分为服务号和订阅号,10月底平台为服务号开放高级接口,包括客服接口.网页授权等,可见服务是微信公众号的核心价值和方向.前一阵很 ...

  3. anriod TabHost

    package com.example.yanlei.mytk; import android.os.Bundle; import android.support.v7.app.AppCompatAc ...

  4. sharepoint 2013 文件“/_controltemplates/SPMRB/AllStatBookingsForm.ascx”不存在

    现象: 文件“/_controltemplates/SPMRB/AllStatBookingsForm.ascx”不存在. 分析: 此代码在sp2010好用,但是在sp2013则报以上错误. 解决办法 ...

  5. iOS沙盒简单介绍

    先简单介绍一下什么是沙盒:你可以简单理解成为一个目录,这个目录的改动不会对操作系统造成任何损失.(这里也有一点点介绍) 看看苹果的沙盒目录: 再附一张苹果官方的图 一个iOS app操作都是在自己的沙 ...

  6. CSS(一)

    开始学习css之旅:先照样式做一个 一.使用DIV设置 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu ...

  7. iOS开发笔记13:顶部标签式导航栏及下拉分类菜单

    当内容及分类较多时,往往采用顶部标签式导航栏,例如网易新闻客户端的顶部分类导航,最近刚好有这样的应用场景,参考网络上一些demo,实现了这种导航效果,记录一些要点. 效果图(由于视频转GIF掉帧,滑动 ...

  8. Android开发者的Git&GitHub(二)

     将代码托管到GitHub上 点击右上角New repository按钮来创建一个版本库 命名后选择添加一个Android项目类型的.gitignore文件,并选择开源协议(例如:Apache v2 ...

  9. ubuntu15.10 给解压版的eclipse安装桌面快捷方式

    在桌面用vi 建立eclipse.desktop文件,并赋予权限 sudo chmod  u+x  /home/liujl/Desktop/eclipse.desktop [Desktop Entry ...

  10. window下使用vnc远程登录阿里云ECS/ubuntu图形界面

    通常我们都使用putty.secureCRT等软件来远程登录linux系统,但这些软件仅提供字符终端界面,若要像windows的远程桌面连接那样登录linux的图形界面,我们可以使用VNC这类的软件. ...