js点击复制文本(js实现复制功能)

介绍

clipboard.js是一款不依赖flash或任何重量级框架的粘贴复制插件,并且它没有任何非常复杂的配置,这也是它存在的原因。


安装

  1. 通过npm安装(或者直接下载js文件引入)

npm install clipboard –save

2.引入js

<script src=”dist/clipboard.min.js”></script>

//官网提供了下载地址,也可以使用免费的cdn

使用

示例

<!DOCTYPE html>
<html class="no-js">
 <head>
 <meta charset="utf-8" />
 <meta http-equiv="X-UA-Compatible" content="IE=edge" />
 <title></title>
 <meta name="description" content="" />
 <meta name="viewport" content="width=device-width, initial-scale=1" />
 <link
 href="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/css/bootstrap.min.css"
 rel="stylesheet"
 />
 </head>
 <body>
 <div class="input-group" style="width: 600px;margin:200px">
 <input
 type="text"
 class="form-control"
 id="foo"
 value="https://github.com/zenorocha/clipboard.js.git"
 placeholder="Amount"
 />
 <div class="btn input-group-addon" data-clipboard-target="#foo">复制</div>
 </div>
 <script src="https://cdn.jsdelivr.net/npm/clipboard@2/dist/clipboard.min.js"></script>
 <script>
 new ClipboardJS(".btn");
 </script>
 </body>
</html>
在网页上优雅的粘贴复制clipboard.js在网页上优雅的粘贴复制clipboard.js

如图书最简单的例子,单机复制按钮即可自动复制文本框的内容

换成下面就会变成剪切,主要是以下属性

data-clipboard-action=”cut”

<div class="input-group" style="width: 600px;margin:200px">
 <input
 type="text"
 class="form-control"
 id="foo"
 value="https://github.com/zenorocha/clipboard.js.git"
 placeholder="Amount"
 />
 <div class="btn input-group-addon" data-clipboard-target="#foo" data-clipboard-action="cut">剪切</div>
 </div>
 <script src="https://cdn.jsdelivr.net/npm/clipboard@2/dist/clipboard.min.js"></script>
 <script>
 new ClipboardJS(".btn");
 </script>

剪切操作仅适用于<input>或<textarea>元素

或者这样,直接复制 data-clipboard-text属性的内容

<button class="btn" data-clipboard-text="要复制的内容">
 复制
</button>

事件监听,可以打开控制台自行尝试

var clipboard = new ClipboardJS('.btn');
clipboard.on('success', function(e) {
 console.info('Action:', e.action);
 console.info('Text:', e.text);
 console.info('Trigger:', e.trigger);
 e.clearSelection();
});
clipboard.on('error', function(e) {
 console.error('Action:', e.action);
 console.error('Trigger:', e.trigger);
});

高级用法

  • 动态绑定
new ClipboardJS('.btn', {
 target: function(trigger) {
 return trigger.nextElementSibling;
 }
});
  • 动态赋值
new ClipboardJS('.btn', {
 text: function(trigger) {
 return trigger.getAttribute('aria-label');
 }
});
  • 要在Bootstrap Modals中使用或与任何其他更改焦点的库一起使用,您需要将focus元素设置为container值
new ClipboardJS('.btn', {
 container: document.getElementById('modal')
});
  • 更好的管理单页面的DOM生命周期
var clipboard = new ClipboardJS('.btn');
clipboard.destroy();

兼容性

在网页上优雅的粘贴复制clipboard.js在网页上优雅的粘贴复制clipboard.js

备注

如果需要支持更低版本的浏览器,可以参考官网的介绍,它能够优雅的降级

提供Chrome和Firefox的扩展

一个浏览器扩展,为GitHub,MDN,Gist,StackOverflow,StackExchange,npm甚至Medium中的每个代码块添加“复制到剪贴板”按钮。需要的可以私信或者前往扩展中心自行下载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至624739273@qq.com举报,一经查实,本站将立刻删除。
Like (0)
柳的头像

相关推荐

  • 网站编程语言有哪些,编程教程网站推荐

    现在学编程的程序员小伙伴越来越多了,追求高薪和理想是众多程序员梦寐以求的事情。 在线学编程的网站哪家强呢?下面w3cschool给程序员小伙伴们推荐5个高大上的编程网站: 0、Ud…

    2024年8月26日 投稿
  • 用户增长策略,用户增长主要做哪些

    本文笔者将从用户增长的痛点、“如何正确理解用户增长?”、“小而美”用户增长策略,以及如何选择合适的策略来聊聊用户增长。 用户增长,看似简单的四个字,对于不少从事运营的人来说,就是一…

    2024年8月25日 投稿
  • 直播正热,网易严选是如何蹭热点的?

    据了解,淘宝、抖音、快手今年的“带货”目标分别为“5000亿、2000亿、2500亿”,直播为平台带来了第二春。 在这其中,受益的不仅是平台,品牌同样利用直播的加持完成了一次质的飞…

    2024年9月25日 投稿
  • 169起售!小米手环5官宣,还支持无线充电

    早在上个月,就有小米手环5的消息出现,不过消息都还不准确,我们也没有跟随报道。目前,小米官方终于正式官宣,将在6月11日下午两点正式发布小米手环5。 官方也放出了小米手环5的渲染图…

    2024年8月26日 投稿
  • 如何开淘宝店铺,这些需要注意的地方你都知道吗

    如何开淘宝店步骤 1、淘宝开店前期需要交纳1000的保障金,这个在不开店的时候可以随时退还给你,主要是为了防止你在淘宝上进行诈骗行为。 2、店铺开起来的话主要是一个网铺的费用一个月…

    2024年8月26日
  • 直播继续搅局双11?

    配图来自Canva可画 一年一度的双十一又快到了,自从淘宝在2009年首次举办双十一促销活动,已经过去十余年,但活动热度却丝毫未减,每年销售额屡创新高。发展至今双十一已经成为全电商…

    2024年8月31日

发表回复

Please Login to Comment
微信
微信
SHARE
TOP
要想花得少,就用购宝。话费电费9折起,官方公众号:购宝