【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