iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何使用clipboard.js库实现复制剪切功能
  • 128
分享到

如何使用clipboard.js库实现复制剪切功能

2023-07-02 12:07:19 128人浏览 安东尼
摘要

这篇文章主要介绍“如何使用clipboard.js库实现复制剪切功能”,在日常操作中,相信很多人在如何使用clipboard.js库实现复制剪切功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用cli

这篇文章主要介绍“如何使用clipboard.js库实现复制剪切功能”,在日常操作中,相信很多人在如何使用clipboard.js库实现复制剪切功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用clipboard.js库实现复制剪切功能”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

为什么使用它

复制文字到剪切板不应该很难去实现。它不需要配置几十个步骤或者加载几百 KB 的文件。最重要的是,它不应该依赖 Flash 或其他臃肿的框架

这是 clipboard.js 诞生的原因。

安装

你可以通过 npm 来安装它。

npm install clipboard --save

如果你不使用包管理,仅需要下载一个ZIP文件。

开始

首先,引入位于dist目录下的脚本文件,或者引入一个第三方CDN

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

然后,你需要通过传入一个DOM 选择器,html 元素, 或者HTML 元素数组作为参数,来实例化对象。

new Clipboard('.btn');

本质上,我们需要获取所有选择器匹配到的元素,并为每一个选择器设置监听事件。但仔细想想,如果有成百上千个匹配到的元素,这样做会耗费大量内存。

因此,我们使用事件代理,通过一个事件监听器来取代多个事件监听。毕竟,性能是问题。

使用

我们正在经历一场声明式的复兴,这就是为什么我们决定利用HTML5data属性来提高可用性的原因。

从另一个元素复制文本

一个很常见的用例是从另一个元素复制内容。你可以给目标元素添加一个data-clipboard-target属性来实现这个功能。

这个属性的值就是能匹配到另一个元素的选择器。

如何使用clipboard.js库实现复制剪切功能

<!-- Target --><input id="foo" value="https://GitHub.com/zenorocha/clipboard.js.git"><!-- Trigger --><button class="btn" data-clipboard-target="#foo">    <img src="assets/clippy.svg" alt="Copy to clipboard"></button>

从另一个元素剪切文本

此外,你可以定义一个data-clipboard-action属性来指明你想要复制(copy)还是剪切(cut)内容。

如果你省略这个属性,则默认为复制(copy)。

如何使用clipboard.js库实现复制剪切功能

<!-- Target --><textarea id="bar">Mussum ipsum cacilds...</textarea><!-- Trigger --><button class="btn" data-clipboard-action="cut" data-clipboard-target="#bar">    Cut to clipboard</button>

正如你所预料的,剪切(cut)动作只在<input><textarea>元素起作用。

从属性复制文本

事实上,你甚至不需要从另一个元素来复制内容。你仅需要给目标元素设置一个data-clipboard-text属性就可以了。

如何使用clipboard.js库实现复制剪切功能

<!-- Trigger --><button class="btn" data-clipboard-text="Just because you can doesn't mean you should — clipboard.js">    Copy to clipboard</button>

事件

如果你想要展示一些用户反馈,或者在用户复制/剪切后获取已经选择的文字,这里有个示例供你参考。

我们通过触发自定义事件,例如successerror,让你可以设置监听并实现自定义逻辑。

var clipboard = new Clipboard('.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);});

你可以访问这个网站,打开控制台,查看演示示例。

工具提示(Tooltips)

每个应用有着不同的设计需求,这是为什么 clipboard.js 没有包含任何 CSS 或内置的工具提示解决方案。

你在示例网站看到的工具提示是通过GitHub's Primer构建的。如果你正在寻找一个外观和体验类似的库,你可以去看看这个项目

高级选项

如果你不想修改 HTML,我们提供了一个非常方面的命令式的 api 给你使用。你需要做的就是声明一个函数,做一些处理,并返回一个值。

例如,如果你希望动态设置target,你需要返回一个节点(node).

new Clipboard('.btn', {    target: function(trigger) {        return trigger.nextElementSibling;    }});

如果你希望动态设置text,你需要返回一个字符串

new Clipboard('.btn', {    text: function(trigger) {        return trigger.getAttribute('aria-label');    }});

如果在 Bootstrap 模态框(Modals)中使用,或是在其他修改焦点的类库中使用,你会希望将获得焦点的元素设置为container属性的值。

new Clipboard('.btn', {    container: document.getElementById('modal')});

同样地,如果你使用单页应用,你可能想要更加精确地管理 DOM 的生命周期。你可以清理事件以及创建的对象。

var clipboard = new Clipboard('.btn');clipboard.destroy();

浏览器支持

这个库依赖于Selection和execCommand的 API。前者兼容所有的浏览器,后者兼容以下浏览器。

如何使用clipboard.js库实现复制剪切功能

好消息是,如果你需要支持旧浏览器,clipboard.js 可以优雅降级。你所要做的就是在success事件触发时提示用户“已复制!”,error事件触发时提示用户“按 Ctrl+C 复制文字”(此时用户要复制的文字已经选择了)。

你也可以通过运行Clipboard.isSupported()来检查浏览器是否支持 clipboard.js,如果不支持,你可以隐藏复制/剪切按钮。

到此,关于“如何使用clipboard.js库实现复制剪切功能”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 如何使用clipboard.js库实现复制剪切功能

本文链接: https://www.lsjlt.com/news/342050.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • c语言怎么读入字符串中的数字符号
    使用 atoi() 函数可以将字符串中的数字转换为整数,具体步骤如下:包含 stdlib.h 头文件。使用 atoi() 函数,用法为:int num = atoi(str);其中 st...
    99+
    2024-05-14
    c语言
  • c语言怎么查找文件中的数据
    c 语言中查找文件中的数据步骤:打开文件;定位到数据点;读取数据;关闭文件。 如何使用 C 语言查找文件中的数据 在 C 语言中,可以通过以下步骤查找文件中的数据: 打开文件:使用...
    99+
    2024-05-14
    c语言
  • c语言怎么求回文数
    c 语言求回文数的方法:1. 读取数字;2. 循环反转数字;3. 比较反转后数字与原始数字;4. 相等则为回文数,否则不是。 如何使用 C 语言求回文数 什么是回文数? 回文数是指从左...
    99+
    2024-05-14
    c语言
  • 如何在 Golang 中从 panic 中恢复?
    在 go 中,使用 recover 函数从 panic 中恢复,该函数从函数栈中返回最近的 panic 值。实战中,可以处理 io.eof 异常,例如:打开文件,使用 defer 捕获 ...
    99+
    2024-05-14
    golang panic
  • c语言怎么判断一个数是整数
    判断一个数在 c 语言中是否为整数:使用 fmod() 函数计算该数除以 1 的余数。如果余数为 0,则该数是整数;否则,该数不是整数。 如何判断一个数在 C 语言中是否为整数 在 C...
    99+
    2024-05-14
    c语言
  • 如何在 Golang 并发环境中处理错误?
    在 go 并发环境中处理错误的有效方法包括:异常处理(panic/recover): 适用于处理意外错误,通过 panic 引发异常,再用 recover 捕获。错误通道: 用来将并发 ...
    99+
    2024-05-14
    golang 错误处理
  • c语言怎么跳出两层for循环
    直接跳出两层 c 语言嵌套 for 循环的方法有三种:使用 break 语句直接跳出。使用 goto 语句跳转到指定标签,继续执行。使用标志变量记录跳出条件,外部 for 循环根据标志值...
    99+
    2024-05-14
    c语言
  • c语言怎么让制表对齐
    c语言中可通过以下两种方法对齐制表符:使用printf()函数的%n和%*c格式说明符计算字节偏移量并插入制表符。使用snprintf()函数将数据写入缓冲区,计算偏移量,写入制表符字符...
    99+
    2024-05-14
    c语言
  • C++ 智能指针和内存管理在高性能服务器架构中的重要性
    在高性能服务器架构中,c++++智能指针通过以下方式优化了内存管理:自动内存释放:超出作用域时释放内存。防止内存泄漏:确保不再需要对象时释放内存。跟踪资源所有权:便于调试和错误处理。常见...
    99+
    2024-05-14
    c++ 内存管理 作用域
  • 用c语言怎么判断素数
    判断素数的方法有蛮力法和埃拉托斯特尼筛法。蛮力法通过逐一尝试从 2 到数字平方根的取模来判断素数,若取模结果有 0 则不是素数。埃拉托斯特尼筛法利用标记数组来跟踪从 2 到给定范围的素数...
    99+
    2024-05-14
    c语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作