ZeroClipboard.js实现js复制功能(兼容ie9 和 ie10)

实现原理:

利用透明的 flash 覆盖在复制按钮上,点击 flash,将复制内容传入到 flash 中,再通过 flash 把传入的内容写到剪贴板上。

使用方法:

需要把 flash 和 js 放到同一路径下,然后引用 js 即可。


clipboardData 对象只有 ie 浏览器认识。该对象有 3 个方法:clearData,getData 和 setData。这 3 个方法网上都有介绍,在这里我就不多说了。

最后需要在调用方法加上判断,ie 和 非ie,具体代码如下:

function clipboard(text,button,msg,parent) {
    if(window.clipboardData){        //for ie
        var copyBtn = document.getElementById(button);
        copyBtn.onclick = function(){
            window.clipboardData.setData('text',text);
            alert(msg);
        }
    }else{
        var clip = new ZeroClipboard.Client(); // 新建一个对象
        clip.setHandCursor( true );<span style="font-family: 'Courier New'; white-space: pre-wrap; margin: 0px; padding: 0px; line-height: 1.8; color: rgb(0, 128, 0);">//</span><span style="font-family: 'Courier New'; white-space: pre-wrap; margin: 0px; padding: 0px; line-height: 1.8; color: rgb(0, 128, 0);">设置鼠标手型</span>
        clip.setText(text); // 设置要复制的文本。
        clip.addEventListener( "mouseUp", function(client) {
            alert(msg);
        });
        // 注册一个 button,参数为 id。点击这个 button 就会复制。
        //这个 button 不一定要求是一个 input 按钮,也可以是其他 DOM 元素。
        clip.glue(button,parent); // 和上一句位置不可调换
    }
    return false;
}

参数说明:

1、如果 flash 和 js 不在同一路径,可使用 ZeroClipboard.setMoviePath( “Flash路径” ); 来设置 flash 路径

text:需要复制的文本内容

button:需要绑定复制功能的元素 id

msg:复制内容后 alert 的信息

parent:复制按钮(DOM 元素)所在的父层的 id,如果没有该 id,默认为 body


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值