ZeroClipboard实现复制功能

    在浏览网页时可以看到复制功能,如:在看一个带有源码的demo时,可以点击复制,把源码复制到剪切板,然后粘贴到本地review,ie浏览器可以使用浏览器内置对象(window.clipboradData)
的setData方法,
但无法兼容其他浏览器,下面介绍ZeroClipboard:

一、原理
ZeroClipboard利用透明的flash让其漂浮在复制按钮之上,将需要复制的内容传入flash,在通过flash的复制功能把传入的内容复制到剪切板。


二、结构

1、ZeroClipboard其实是国外的一个js类库,源码结构如:
1
2
3
4
5
6
7
var ZeroClipboard = {
    //这里是属性和方法.....   
};
 
ZeroClipboard.Client.prototype = {
    //扩展方法
};
2、创建对象,如:
1
2
var clip = new ZeroClipboard.Client();
//调用扩展方法

点击
这里下载文件
查看github源码百度文库


三、简单配置


下载下来的ZeroClipboard文件有一个js和swf文件,在js文件中需要正确配置moviePath路径,可以配置相对和绝对路径,也可以
调用实例对象的moviePath()设置正确的路径;
另一个需要注意的地方是本地测试时,需要Apache服务器



四、domo实例

CSS:
1
.box { width: 300px; height: 100px; margin: 100px auto; }
HTML:
1
2
3
4
<div class="box">
    <textarea id="J_share_text" class="share-text"></textarea>
    <input class="btn" id="J_copy_clipboard_data" type="button" value="复制">
</div>
JavaScript:
1
2
3
4
5
6
7
8
9
10
(function() {
    $(function() {
        var clip = new ZeroClipboard.Client();
        clip.setHandCursor(true);
        clip.glue('J_copy_clipboard_data');
        clip.addEventListener('mouseDown',function() {
            clip.setText(ZeroClipboard.$('#J_share_text').val());
        });
    });     
})()

完整demo:

posted @   杨君华  阅读(6588)  评论(5编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示