加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flash+JS实现跨浏览器复制剪贴板功能

发布时间:2020-12-15 17:23:46 所属栏目:百科 来源:网络整理
导读:?做JS的都知道,如果不考虑浏览器的兼容问题,其实,JS本身的 window.clipboardData对象是可以做到复制内容到剪贴板的功能,但除了IE浏览器,FF和Chrome浏览器都不支持。 现在为了浏览器的兼容问题,只能使用Flash来做这功能了。 ? ? ? ?Flash Player在10.0
?做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( ) ?获取指定的文本数据;
? ? ? 但 Clipboard类的使用也需要用户的参与,setData与clearData方法的调用,可以像上面说到的,在flash 中绘制一个透明的显示对象,放置在触发的位置让用户点击,当触发Click事件后做相应的处理;getData则不同了,Clipboard.generalClipboard对象只能在处理flash.events.Event.PASTE事件时读取。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读