兼容所有浏览器的点击复制文本内容效果

快乐打工仔 分类:实例代码

点击一个按钮复制指定元素中的内容貌似在很久以前很容易实现。但是现在好像麻烦了许多,这是因为在很久以前,IE浏览器占绝大多数,甚至都可以不用考虑其他浏览器,所以使用IE自带的功能就可以实现,但是随着时间的推移,各种浏览器的出席那,IE那独有的方式已经不再适合,下面就分享一个能够兼容所有浏览器的方式。

代码实例如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.pipipi.net/" />
<title>犀牛前端部落</title>
<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.zclip.min.js"></script> 
<script>
$(function(){ 
  $('#copy_input').zclip({ 
    path: 'js/ZeroClipboard.swf', 
    copy: function(){//复制内容 
      return $('#mytext').val(); 
    }, 
    afterCopy: function(){//复制成功 
      $("<span id='msg'/>").insertAfter($('#copy_input')).text('复制成功'); 
    } 
  }); 
}); 
</script>
</head>
<body>
<textarea id="mytext">请输入内容</textarea><br/> 
<a href="#" id="copy_input" class="copy">复制内容</a>
</body>
</html>

上面的代码实现了点击元素复制指定元素内容效果,下面介绍一下注意点。

特别说明:

(1).首先要引入jquery和jquery.zclip插件。

(2).要在服务器环境下测试,否则没有效果。

(3).如果是复制的内容来自输入框input、textarea等表单元素,copy对象使用如下代码:

copy: function(){ 
  return $('#mytext').val(); 
}

如果是div、span或者p等元素,就需要使用如下方法:

copy: function(){ 
  return $('#mytext').text(); 
}

参数说明:

(1).path:swf调用路径,必须,如js/ZeroClipboard.swf。

(2).copy:复制的内容,必须,任意字符串,也可以是回调函数返回的内容。

(3).beforeCopy:复制内容前回调函数,可选。

(4).afterCopy:复制内容后回调函数,可选。

完整代码下载:兼容所有浏览器的点击复制文本内容效果复制黏贴.rar

回复

我来回复
  • 暂无回复内容