没有废话。。。。。。。。。。。。。。。。。。。。。。。我只是搬运+微封装工。
原生来写浏览器复制功能也不是不可以。但是~~~本着高效,稳健的心态,还是决定用ZeroClipboard。
简介
这是一款基于Flash的,兼容性较强的用于剪贴板复制的 JS 插件,它是基于 Flash 来实现跨浏览器的复制功能的。
github:https://github.com/zeroclipboard/zeroclipboard
使用
你需要两个文件,因为是基于Flash的,所以肯定需要一个.swf文件。
两种方式:
1.直接使用官方的CDN,可以直接使用
2.如果在本地服务器上使用,请放在同一目录下, ZeroClipboard.js 会自动加载 ZeroClipboard.swf
文件。省去配置swf文件的路径的步骤。
创建两个input元素(不一定非是input)
<input id="clipText" type="text" />
<input id="clip" type="button" data-clipboard-target="clipText" value="一键复制" />
实例化zeroClipboard对象
<script type="text/javascript">
window.onload=function(){
var copy = new ZeroClipboard(document.getElementById("clip"));
}
</script>
就这样你就可以实现一键复制功能啦,so easy!!!
事件绑定
ZeroClicpboard事件绑定函数on,用法与jq十分类似。
<script type="text/javascript">
window.onload=function(){
var copy = new ZeroClipboard(document.getElementById("clip"));
ZeroClipboard.on("error",function(){
alert('一键复制功能未正常加载。请检查浏览器Flash');
})
ZeroClipboard.on("copy",function(){
alert('复制成功');
})
}
</script>
这里我只用到了error和copy事件。还有ready,aftercopy..........看自己需要。
重要
由于 Flash 本地沙箱的安全限制,以下代码如果是在本地HTML文件中被浏览器直接打开,将无法正常工作。