一键复制粘贴

news/2024/7/19 14:37:27 标签: 一键复制, web, JS

一键复制粘贴功能需要用到一个轻量级的JS插件:clipboard.js。

官网地址:https://clipboardjs.com

下载到本地后,将其放入项目中,直接引用即可。具体实现代码如下:

<!DOCTYPE html>
<html>
      <head>
		<meta charset="UTF-8">
		<title>一键复制粘贴</title>
		<style>
		.transfer {
			width: 90%;
			margin: 20px auto;
			font-size: 18px;
		}
		.transfer button {
			margin-top: -5px;
			float: right;
			margin-left: 10px;
			background-color: rgb(3, 169, 244);
			width: 30%;
			height: 25px;
			font-size: 14px;
			color: white;
			border: 0;
		border-radius: 8%;
		}
		</style>
	</head>

	<body>
	<div class="transfer">
		支付宝:<span id="zfb_account">11111111111</span>
		<button onclick="copy1()" data-clipboard-action="copy" data-clipboard-target="#zfb_account" id="copy_zfb">一键复制</button>
	</div>
		<div class="transfer">
		微信:<span id="wx_account">2222222</span>
		<button onclick="copy2()" data-clipboard-action="copy" data-clipboard-target="#wx_account" id="copy_wx">一键复制</button>
		</div>
		<input type="text" />
	</body>

	<script type="text/javascript" src="../js/clipboard.min.js"></script>
	<script>
	function copy1() {
		var clipboard = new Clipboard('#copy_zfb');
		clipboard.on('success', function(e) {
		e.clearSelection(); //选中需要复制的内容
		alert("复制成功!");
		});
		clipboard.on('error', function(e) {
		alert("当前浏览器不支持此功能,请手动复制。")
		});
	}
		
	function copy2() {
		var clipboard = new Clipboard('#copy_wx');
		clipboard.on('success', function(e) {
		e.clearSelection(); //选中需要复制的内容
		alert("复制成功!");
		});
		clipboard.on('error', function(e) {
		alert("当前浏览器不支持此功能,请手动复制。")
		});
	}
	</script>

</html>

 

 

 


后续补充:

       在复制粘贴时,第二次点击就会弹出两次复制成功,第三次点击就会弹出三次,原因是每次点击后执行实例化一个clipboard对象,之前的clipboard对象并没有销毁,所以就会弹出多次。解决方法是:每次使用完成后销毁clipboard对象,这样既能解决现在的问题,也可以释放内存,优化代码。代码如下:无论复制成功或失败,都需要clipboard.destroy()。

function copy1() {

       var clipboard = new Clipboard('#copy_zfb');

       clipboard.on('success', function(e) {

           e.clearSelection(); //选中需要复制的内容

           alert("复制成功!");

          clipboard.destroy();

       });

       clipboard.on('error', function(e) {

           alert("当前浏览器不支持此功能,请手动复制。")

           clipboard.destroy();

       });

    }

 注意:如果你在项目中使用了其他的前端框架或者插件,有可能会与clipboard.js插件产生冲突。解决方法,可以使用<iframe/>标签,将此部分代码放在一个新的html文件中,然后在主文件中使用<iframe/>标签引入。


本人为JS实习生一枚,不断学习,不断进步,欢迎各位前辈批评指教。


http://www.niftyadmin.cn/n/875717.html

相关文章

商品抢购倒计时(天,时,分,秒)

在这里案例中需要用到JS方法&#xff1a;Date()&#xff0c;parseInt()&#xff0c;getTime()。先对这三个方法做些介绍。 Date()方法&#xff1a;可返回当天的日期和时间。用法&#xff1a; var newTime new Date(); 也可用来定义一个时刻&#xff0c;写法如下&#xff1a…

网页标题前面的logo怎么设置

首先要选好一张准备作为logo的图片&#xff0c;然后将其转化为.ico格式。给大家分享一个在线转.ico的网站&#xff1a;http://cn.faviconico.org/ 将图片转化完成后下载到本地。将其放入你的web项目中。 然后在HTML文件的<head></head>标签内&#xff0c;插入一行…

字体图标,web页面常用图标

在web开发过程中&#xff0c;我们常常需要用到图标&#xff0c;在一些前端框架中&#xff0c;也会带有自己的图标库&#xff0c;但是可能不够全面&#xff0c;这里我给大家街上一个我常用的图标库&#xff1a;阿里巴巴矢量图标库。官网地址&#xff1a;http://www.iconfont.cn/…

DOM节点详解

HTML 文档中的所有内容都是节点&#xff1a;整个文档是一个文档节点&#xff1b;每个 HTML 元素是元素节点&#xff1b;HTML 元素内的文本是文本节点&#xff1b;每个 HTML 属性是属性节点&#xff1b;注释是注释节点。 节点树的根节点为<html>&#xff0c;节点树之间的…

有弹出层时创建遮罩层并禁止屏幕滚动

在点击登录注册后通常要创建遮罩层&#xff0c;使整个屏幕只能操作登录窗口部分的内容。首先需要设置弹出框的z-index值为3&#xff0c;使弹出层距离用户更近。还需要创建一个div宽高占满整个屏幕&#xff0c;用来做遮罩层。&#xff08;z-index2&#xff09;。同时设置这两个d…

web图片加水印

在前端给图片加水印的方法有很多种&#xff1a; 法一&#xff1a;jscanvas&#xff0c;使用H5新增元素canvas&#xff08;画布&#xff09;加水印。 使用此方法&#xff0c;用户可以在页面上自定义水印内容。 代码如下&#xff1a; <body><canvas id"shuiyin…

CSS常用样式总结

1、一行文字超出的使用...展示 display: inline-block; // 转成行内块 overflow: hidden; width: 100px; // 宽度必设 word-break: keep-all; white-space: nowrap; // 一行展示 text-overflow: ellipsis; //溢出变成... 2、a标签 去掉下划线 text-decoration:none;

微信小程序自定义封装顶部导航栏

微信小程序自定义封装顶部导航栏&#xff08;自定义返回界面、动态设置标题&#xff09; 微信小程序官方的navigationBar只能设置颜色&#xff0c;字体大小&#xff0c;但是实际开发中多层页面嵌套则需要我们有返回上一级页面或者返回指定页面的功能&#xff0c;这个时候官方提…