【javascript】剪贴板功能——ZeroClipboard(修正)

最近做了个项目有使用到复制的功能,用的是 ZeroClipboard,具体点此了解。但是在测试的过程中,发现 ie9 和 ie10 复制不了。解决方法:clipboardData。

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 );
        clip.setText(text); // 设置要复制的文本。
        clip.addEventListener( "mouseUp", function(client) {
            alert(msg);
        });
        // 注册一个 button,参数为 id。点击这个 button 就会复制。
        //这个 button 不一定要求是一个 input 按钮,也可以是其他 DOM 元素。
        clip.glue(button,parent); // 和上一句位置不可调换
    }
    return false;
}

参数说明:

text:需要复制的文本内容

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

msg:复制内容后 alert 的信息

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

posted @ 2013-05-02 11:50  朱羽佳  阅读(2270)  评论(0编辑  收藏  举报
回顶部