开发过程中难免遇到期望点击可以直接复制链接的情况,这里有两种实现方式

第一种:使用原生的js方式进行实现(MDN已废弃且存在兼容性)

使用原生方法实现时主要用到了document.execCommmand方法,该方法允许运行命令来操作可编辑内容区域的元素

语法:

boolean=document.execCommand(aCommandName,aShowDefaultUI,aValueArgument)

返回值:一个Boolean,如果是false则表示操作不被支持或未被启用

参数:

  • aCommandName
    一个DOMString,命令的名称
  • aShowDefaultUI
    一个Boolean,是否展示用户界面,一般为false
  • aValueArgument
    一些命令需要的额外参数,默认为null

常用命令:

  • copy
    拷贝当前选中内容到剪切板。启用这个功能的条件因浏览器不同而不同,而且不同时期,其启用条件也不尽相同。使用之前请检查浏览器兼容表,以确定是否可用
  • cut
    剪切当前选中的文字并复制到剪贴板,功能注意事项同上

方法:

copy(value){let outInput=document.createElement("input");outInput.value=value;document.body.appendChild('outInput');outInput.select();//选择对象document.execCommand("copy");//执行copy命令outInput.style.display="none";
}
第二种:使用vue-clipboard2 (clipboard.js)

安装:

nam i vue-clipboard2 -s

项目引入:

//mian.js下引入
import VueClipboard from 'vue-clipboard2'
Vue.use(VueClipboard)

使用:

<span>{{text}}</span>
<button v-clipboard:copy='text'v-clipboard:suucess='copySuccess'v-clipboard:error='copyError'></button>methods:{copySuccess(e){},copyError(e){}
}
第三种 navigator Clipboard

Clipboard 接口实现了Clipboard API,如果用户授予了相应的权限,就能提供系统剪贴板的读写访问。在Web应用程序中,Clipboard API 可用于实现剪切、复制和粘贴功能

系统剪贴板暴露于全局属性Navigator.clipboard中。
如果用户没有实时使用Permissions API 授予相应权限和‘clipboard-read’ 和 ‘clipboard-write’权限,调用Cliboard对象的方法不会成功

所有剪切板API方法都是异步的;它们返回一个Promise对象,在剪贴板访问完成后被执行。如果剪贴板访问被拒绝,promise也会被拒绝。

方法

read()从剪贴板读取数据,返回一个Promise对象。
readText()从剪贴板中读取文本
write()写入任意数据至操作系统剪贴板
writeText()写入文本到剪贴板

兼容性

js实现浏览器中的复制粘贴相关推荐

  1. JavaScript 中的复制粘贴操作

    在日常业务开发,比如复制后增加版权信息,点击复制,等场景中需要进行复制粘贴的操作,以下是几种实现方案. Clipboard API Clipboard API 提供了响应剪贴板命令(剪切.复制和粘贴) ...

  2. 使用TensorFlow.js在浏览器中进行深度学习入门

    目录 设置TensorFlow.js 创建训练数据 检查点 定义神经网络模型 训练AI 测试结果 终点线 内存使用注意事项 下一步是什么?狗和披萨? 下载TensorFlowJS示例-6.1 MB T ...

  3. 如何优雅的在ubuntu终端中使用复制粘贴

    如何优雅的在ubuntu终端中使用复制粘贴 文章目录 前言 更改终端里面的复制粘贴命令 修改鼠标按键映射 介绍 安装 依赖 编译安装 配置文件 前言 安装了ubuntu20.4 后发现终端里面的复制粘 ...

  4. js调用浏览器的复制功能复制内容到剪切板

    js调用浏览器的复制功能: 浏览器自带复制粘贴功能,通过js调用浏览器的复制功能实现复制文本内容到剪切板 浏览器复制命令:document.execCommand('Copy') 具体代码实现: // ...

  5. 【转】vi编辑器中如何复制粘贴文本

    转自:http://old.blog.edu.cn/user2/icethawless/archives/2006/1489681.shtml vi中多个文件相互之间的复制.粘贴功能简介 大家在vi编 ...

  6. js判断wifi_使用JS在浏览器中判断当前网络连接状态的几种方法

    使用JS在浏览器中判断当前网络状态的几种方法如下: 1. navigator.onLine 2. ajax请求 3. 获取网络资源 4. bind() 1. navigator.onLine 通过na ...

  7. [js] 在不支持js的浏览器中如何隐藏JavaScript代码?

    [js] 在不支持js的浏览器中如何隐藏JavaScript代码? 在<script>标签之后的代码中添加"<!-– ",不带引号. 在</script&g ...

  8. 狗和披萨:使用TensorFlow.js在浏览器中实现计算机视觉

    目录 起点 托管说明 MobileNet v1 运行物体识别 终点线 下一步是什么?绒毛动物? 下载TensorFlowJS示例-6.1 MB TensorFlow + JavaScript.现在,最 ...

  9. 使用face-api和Tensorflow.js在浏览器中进行AI年龄估计

    目录 性别和年龄检测 下一步是什么? 下载源-10.6 MB 在上一篇文章中,我们学习了如何使用face-api.js和Tensorflow.js在浏览器中对人的情绪进行分类. 如果您尚未阅读该文章, ...

最新文章

  1. 基于比特币现金BCH二层网络能实现区块链2.0以太坊的智能化吗
  2. 文本编辑器中实现自定义编辑框中字体和大小的功能
  3. 《基于张量网络的机器学习入门》学习笔记4
  4. 腾讯3轮面试都问了Android事件分发,原理+实战+视频+源码
  5. 年仅 5 岁的 Rust 如何成为最受欢迎的编程语言?
  6. python输入时间_一文搞懂python日期时间处理
  7. 最速下降法极小化rosenbrock函数 代码_典型算法思想与应用9|分支限界法与电路布线问题
  8. cpu要和gpu搭配吗_搞懂GPU为什么比CPU“快”
  9. SPSS 分层回归(图文+数据集)【SPSS 027期】
  10. 冒泡排序超详细讲解C语言
  11. 世界足坛的一些著名德比
  12. 安装WebStorm激活码失效解决方法
  13. 送送送!这本python少儿编程书籍竟然被出版社官宣了!
  14. Smplayer命令行模式下的用法
  15. 使 abbr 元素适用于触摸屏、键盘和鼠标
  16. GIT--使用流程规范
  17. python程序基础网课答案_Python程序设计基础智慧树网课答案
  18. Wargames(一)
  19. Java EE:第10章初识Spring MVC框架 课后习题
  20. (十二)命令模式详解(故事版) .

热门文章

  1. 我的家乡--平泉 之 食
  2. Ubuntu花屏、出现黑色条纹原因分析
  3. 【问题描述】假设今年工业产值为100万元,产值增产率从键盘输入,请编程计算工业产值经过多少年可以实现翻一番(即增加1倍)【输入形式】输入增产率 (float型数据),如输入10则表示增产率10%
  4. 【oracle】创建用户(指定表空间)、删除用户
  5. hutool工具Word07Writer导出word文档提供下载
  6. api.php act orders,api.php · 深圳市龙岗区余生网络工作室/酷享云支付 - Gitee.com
  7. 计算机老师任课教师寄语,一年级一句话任课老师寄语
  8. Python之pywifi模块
  9. js 矩形div鼠标拉扯拖拽
  10. 香港IT人的工作情况~