HTML/CSS

通过JS实现一键复制指定内容教程

阿里云

经常会见到网站上各种“一键复制”的友好体验按钮,不局限于 code 的复制,这样友好的体验,方便快捷的操作对访客来说百利无一害。在网上搜索了一番关于“JS 实现一键复制”的文章数不胜数啊。用得较多的就是通过 clipboard.min.js 来实现复制,毕竟现在 Flash 在各浏览器中被禁用等等各种不友好。今天分享一个实用的功能,通过点击事件复制一段文本到剪切板,在网上找了一些,整理了一下,方便需要的朋友使用。

方法一

  1. <a id="copy" data-text="123456">复制文本</a>
  2. <script type="text/javascript">
  3. $(function(){
  4.     var clipboard = new Clipboard('#copy',{ 
  5.        text: function(trigger) { 
  6.           alert("复制成功!");
  7.           return trigger.getAttribute('data-text'); 
  8.        }
  9.     });
  10. });
  11. </script>
也想出现在这里?联系我们
创客主机

方法二

  1. <div>
  2. <span id="copyMy"> 复制我试试</span>
  3. <button onClick="copyFn()">点击复制</button>
  4. </div>
  5. <script>
  6. 	function copyFn() {
  7. 		var val = document.getElementById('copyMy');
  8. 		window.getSelection().selectAllChildren(val);
  9. 		document.execCommand("Copy");
  10. 		alert("已复制好,可贴粘。");
  11.  
  12. 	}
  13. </script>

方法三

  1. <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
  2. <script type="text/javascript" src="js/jquery.zclip.min.js"></script>
  3. <div class="copybox clearfix">
  4.   <div class="copybox-n1 clearfix">
  5.     <div style="width:232px;float:left;height:36px;overflow:hidden;zoom:1">
  6.       <input type="text" id="mytxt1" value="点击右侧复制按钮复制" class="n1input">
  7.     </div>
  8.     <div style="width: 48px; height: 36px; position: absolute; margin-left: 232px;*margin-left:0px;_margin-left: 0">
  9.       <button id="copy_input1" class="n1-btn">复制</button>
  10.     </div>
  11.   </div>
  12.   <div class="copybox-n2 clearfix">
  13.     <div style="width:232px;float:left;height:36px;overflow:hidden;zoom:1">
  14.       <input type="text" id="mytxt2" value="点击右侧复制按钮复制" class="n1input">
  15.     </div>
  16.     <div style="width: 48px; height: 36px; position: absolute; margin-left: 232px;*margin-left:0px; _margin-left:0">
  17.       <button id="copy_input2" class="n1-btn">复制</button>
  18.     </div>
  19.   </div>
  20. </div>
  21. <script type="text/javascript">
  22.   $(function() {
  23.     /*复制*/
  24.     $('#copy_input1').zclip( {
  25.       path : 'js/ZeroClipboard.swf',
  26.       copy : function() {return $('#mytxt1').val();/*复制内容*/},
  27.       afterCopy : function() {alert("复制成功");/*复制成功*/}
  28.     });
  29.     /*复制*/
  30.     $('#copy_input2').zclip( {
  31.       path : 'js/ZeroClipboard.swf',
  32.       copy : function() {return $('#mytxt2').val();/*复制内容*/},
  33.       afterCopy : function() {alert("复制成功");/*复制成功*/}
  34.     });
  35.   });
  36. </script>

方法四

1、下载 clipboard.js 文件。clipboard.js 是一个 github 上的开源项目,可以实现纯 JavaScript (无 Flash)的浏览器内容复制到系统剪贴板的功能。

2、将以下代码放在 footer.php 中,其中 clipboard.min.js 路径请自行修改。

  1.     <script src="JS路径" type="text/javascript"></script>
  2.     <script>
  3.     var clipboard = new Clipboard( '.itemCopy' );
  4.     clipboard.on('success', function(e){
  5.     if(e.trigger.disabled == false ||
  6.     e.trigger.disabled == undefined) {
  7.     e.trigger.innerHTML="复制成功";
  8.     e.trigger.disabled = true;
  9.     setTimeout(function() {
  10.     e.trigger.innerHTML="一键复制";
  11.     e.trigger.disabled = false;
  12.     },2000);
  13.     }
  14.     });
  15.     clipboard.on('error', function(e) {
  16.     e.trigger.innerHTML="复制失败";
  17.     });
  18.     </script>

3、在 header.php 头部引入以下 amazeui.css 文件。以下 amazeui-2.css 文件引入的是无删减版,大家也可以使用压缩包里面的 amazeui.css 文件,自行选择即可。

  1. <link rel="stylesheet" href="https://tu2.aitao779.com/amazeui-2.css ">

4、在文章中引用按钮代码。在编写文章的时候,将代码放在合适的位置,把 data-clipboard-text 的值“复制的内容”修改成指定的内容即可。

  1. <button class="itemCopy am-btn am-btn-warning am-round am-btn-xs" id="TKLS"  type="button" data-clipboard-text="复制的内容">一键复制</button>

到这里差不多就完成了,说实话我自己都觉得有点粗糙。但是在摸索的路上收获颇多。也希望路过的大佬们,来指点和优化下代码,做出更好更方便的复制功能。

通过 JS 实现一键复制指定内容教程

已有 897 人购买
查看演示升级 VIP立刻购买

收藏
(2)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!