js实现浏览器中的复制粘贴
开发过程中难免遇到期望点击可以直接复制链接的情况,这里有两种实现方式
第一种:使用原生的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实现浏览器中的复制粘贴相关推荐
- JavaScript 中的复制粘贴操作
在日常业务开发,比如复制后增加版权信息,点击复制,等场景中需要进行复制粘贴的操作,以下是几种实现方案. Clipboard API Clipboard API 提供了响应剪贴板命令(剪切.复制和粘贴) ...
- 使用TensorFlow.js在浏览器中进行深度学习入门
目录 设置TensorFlow.js 创建训练数据 检查点 定义神经网络模型 训练AI 测试结果 终点线 内存使用注意事项 下一步是什么?狗和披萨? 下载TensorFlowJS示例-6.1 MB T ...
- 如何优雅的在ubuntu终端中使用复制粘贴
如何优雅的在ubuntu终端中使用复制粘贴 文章目录 前言 更改终端里面的复制粘贴命令 修改鼠标按键映射 介绍 安装 依赖 编译安装 配置文件 前言 安装了ubuntu20.4 后发现终端里面的复制粘 ...
- js调用浏览器的复制功能复制内容到剪切板
js调用浏览器的复制功能: 浏览器自带复制粘贴功能,通过js调用浏览器的复制功能实现复制文本内容到剪切板 浏览器复制命令:document.execCommand('Copy') 具体代码实现: // ...
- 【转】vi编辑器中如何复制粘贴文本
转自:http://old.blog.edu.cn/user2/icethawless/archives/2006/1489681.shtml vi中多个文件相互之间的复制.粘贴功能简介 大家在vi编 ...
- js判断wifi_使用JS在浏览器中判断当前网络连接状态的几种方法
使用JS在浏览器中判断当前网络状态的几种方法如下: 1. navigator.onLine 2. ajax请求 3. 获取网络资源 4. bind() 1. navigator.onLine 通过na ...
- [js] 在不支持js的浏览器中如何隐藏JavaScript代码?
[js] 在不支持js的浏览器中如何隐藏JavaScript代码? 在<script>标签之后的代码中添加"<!-– ",不带引号. 在</script&g ...
- 狗和披萨:使用TensorFlow.js在浏览器中实现计算机视觉
目录 起点 托管说明 MobileNet v1 运行物体识别 终点线 下一步是什么?绒毛动物? 下载TensorFlowJS示例-6.1 MB TensorFlow + JavaScript.现在,最 ...
- 使用face-api和Tensorflow.js在浏览器中进行AI年龄估计
目录 性别和年龄检测 下一步是什么? 下载源-10.6 MB 在上一篇文章中,我们学习了如何使用face-api.js和Tensorflow.js在浏览器中对人的情绪进行分类. 如果您尚未阅读该文章, ...
最新文章
- 基于比特币现金BCH二层网络能实现区块链2.0以太坊的智能化吗
- 文本编辑器中实现自定义编辑框中字体和大小的功能
- 《基于张量网络的机器学习入门》学习笔记4
- 腾讯3轮面试都问了Android事件分发,原理+实战+视频+源码
- 年仅 5 岁的 Rust 如何成为最受欢迎的编程语言?
- python输入时间_一文搞懂python日期时间处理
- 最速下降法极小化rosenbrock函数 代码_典型算法思想与应用9|分支限界法与电路布线问题
- cpu要和gpu搭配吗_搞懂GPU为什么比CPU“快”
- SPSS 分层回归(图文+数据集)【SPSS 027期】
- 冒泡排序超详细讲解C语言
- 世界足坛的一些著名德比
- 安装WebStorm激活码失效解决方法
- 送送送!这本python少儿编程书籍竟然被出版社官宣了!
- Smplayer命令行模式下的用法
- 使 abbr 元素适用于触摸屏、键盘和鼠标
- GIT--使用流程规范
- python程序基础网课答案_Python程序设计基础智慧树网课答案
- Wargames(一)
- Java EE:第10章初识Spring MVC框架 课后习题
- (十二)命令模式详解(故事版) .
热门文章
- 我的家乡--平泉 之 食
- Ubuntu花屏、出现黑色条纹原因分析
- 【问题描述】假设今年工业产值为100万元,产值增产率从键盘输入,请编程计算工业产值经过多少年可以实现翻一番(即增加1倍)【输入形式】输入增产率 (float型数据),如输入10则表示增产率10%
- 【oracle】创建用户(指定表空间)、删除用户
- hutool工具Word07Writer导出word文档提供下载
- api.php act orders,api.php · 深圳市龙岗区余生网络工作室/酷享云支付 - Gitee.com
- 计算机老师任课教师寄语,一年级一句话任课老师寄语
- Python之pywifi模块
- js 矩形div鼠标拉扯拖拽
- 香港IT人的工作情况~