当前位置: 首页 > news >正文

Clipboard.js实现复制文本到剪贴板功能

一、Clipboard.js简介

Clipboard.js是一个轻量级的实现复制文本到剪贴板功能的JavaScript插件,该插件可以将输入框,文本域,DOM节点元素中的文本内容复制到剪贴板中。
官网地址:Clipboard.js
浏览器兼容性:兼容Chrome、Firefox、Opera、Safari、IE9+

二、Clipboard.js安装

2.1、NPM安装

你可以在 npm 上获取它:
npm install clipboard --save

2.2、ZIP安装

如果您不喜欢包管理,只需下载ZIP文件即可:Clipboard.js的ZIP文件。

三、使用Clipboard.js

3.1、在页面引入clipboard.js

<script src="js/node_modules/clipboard/dist/clipboard.js" type="text/javascript"></script>

现在,你需要通过传递 DOM 选择器、HTML 元素或 HTML 元素列表来实例化它。

3.2、从元素属性复制文本

事实是,您甚至不需要其他元素来复制其内容。您可以只在 trigger 元素中包含一个属性:data-clipboard-text。

<a href="javascript:;" class="btn" id="copyBtn" data-clipboard-text="复制测试内容">复制</a>

3.2.1、执行JS事件

<script type="text/javascript">let isCompatible = ClipboardJS.isSupported();//--------这句为:是否兼容if (isCompatible) {let clipboard = new ClipboardJS('#copyBtn');clipboard.on('success', function (e) {console.log(e.text);$('#bar').val(e.text);console.log("文本已经复制到剪贴板!");});clipboard.on('error', function (e) {let cpoy_text = e.text;if (!cpoy_text) {alert("需要复制或剪切的内容为空!");}});}
</script>

3.2.2、执行JS事件效果

执行效果

3.3、从其他元素剪切文本

此外,您还可以定义一个属性来指定是否要 或 content。data-clipboard-actioncopycut;如果省略此属性,则默认使用:copy

3.2.1、HTML代码

<textarea name="" id="bar"></textarea>
<a href="javascript:;" class="btn" id="copyBtn" data-clipboard-action="cut" data-clipboard-target="#bar">复制</a>

3.3.2、执行JS事件

<script type="text/javascript">let isCompatible = ClipboardJS.isSupported();//--------这句为:是否兼容if (isCompatible) {let clipboard = new ClipboardJS('#copyBtn');clipboard.on('success', function (e) {console.log(e.text);$('#bar').val(e.text);console.log("文本已经复制到剪贴板!");});clipboard.on('error', function (e) {let cpoy_text = e.text;if (!cpoy_text) {alert("需要复制或剪切的内容为空!");}});}
</script>

3.3.3、执行JS事件效果

执行效果

3.4、以下是完整的HTML代码

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Clipboard.js实现复制文本到剪贴板功能</title><script src="js/node_modules/jquery/dist/jquery.js" type="text/javascript"></script><script src="js/node_modules/clipboard/dist/clipboard.js" type="text/javascript"></script>
</head><body><!-- 从其他元素剪切文本 --><textarea name="" id="bar"></textarea><a href="javascript:;" class="btn" id="copyBtn" data-clipboard-action="cut" data-clipboard-target="#bar">复制</a><!-- 从元素属性复制文本 --><a href="javascript:;" class="btn" id="copyBtn" data-clipboard-text="复制测试内容">复制</a><textarea name="" id="bar"></textarea></body></html>
<script type="text/javascript">let isCompatible = ClipboardJS.isSupported();//--------这句为:是否兼容if (isCompatible) {let clipboard = new ClipboardJS('#copyBtn');clipboard.on('success', function (e) {console.log(e.text);$('#bar').val(e.text);console.log("文本已经复制到剪贴板!");});clipboard.on('error', function (e) {let cpoy_text = e.text;if (!cpoy_text) {alert("需要复制或剪切的内容为空!");}});}
</script>
http://www.lryc.cn/news/450121.html

相关文章:

  • Harbor安装笔记
  • HTTP 1.0 2.0 3.0详解
  • Python操作TXT文本:从入门到精通
  • 开源 AI 智能名片 2+1 链动模式 S2B2C 商城小程序的数据运营策略与价值创造
  • ip 地址查看cmd命令
  • 力扣9.26
  • HT8731 内置自适应H类升压和防破音功能的10W D类及AB类音频功率放大器
  • webpack使用
  • 高通Android 12 音量API设置相关代码
  • Qt开发第一讲
  • 详细指南:如何有效解决Windows系统中msvcp140.dll丢失的解决方法
  • 【RabbitMQ】幂等性、顺序性
  • FFmpeg源码:avio_skip函数分析
  • Llama 3.1 技术研究报告-6
  • 更新日志-Python OS
  • Chrome浏览器的C++内存管理技术揭秘
  • Redis --- redis事务和分布式事务锁
  • SQL,将多对多的关联记录按行输出
  • 【SQL】筛选字符串与正则表达式
  • 【Redis入门到精通五】Java如何像使用MySQL一样使用Redis(jedis安装及使用)
  • 【 微信机器人+ AI 搭建】
  • VGG16网络介绍及代码撰写详解(总结1)
  • 多个excel表数据比对操作
  • golang学习笔记32——哪些是用golang实现的热门框架和工具
  • ZYNQ:开发环境搭建
  • 一步一步丰富生成式语言模型系统
  • Python中元组的常用方法
  • 新版本Android Studio如何新建Java code工程
  • 2024年世界职业院校技能大赛:全面升级的国际化职业技能竞赛
  • 前端vue相关常见面试题,包含MVVM、双向绑定原理、性能优化、vue2和vue3性能对比等