js原生复制文本
js原生复制文本到剪切板
功能:实现一键复制文本内容,用于鼠标右键粘贴。
简单的模板如下:
1 | const textarea = document.createElement("textarea"); |
现对其实现思路进行逐行分析。
首先动态创建 textarea 标签
1
const textarea = document.createElement("textarea");
document.createElement()是一个JavaScript DOM方法,用于在文档中创建指定的HTML元素,只需要在JS中调用该方法,并指定要创建的元素的标签名称作为参数。
创建完成后,即可对其进行相关操作,如添加文本内容、设置属性或将其添加至另一个元素中。比如这里其实设置textarea相关属性。
1
2
3
4//该 textarea 设为 readonly 防止 iOS 下自动唤起键盘,同时将 textarea 移出可视区域
textarea.readOnly = 'readonly';
textarea.style.position = 'absolute';
textarea.style.left = '-9999px';将要 copy 的值赋给 textarea 标签的 value 属性
1
textarea.value = '要复制的内容';
将 textarea 插入到 body 中
document.createElement()是在对象中创建一个对象,要与appendChild() 或 insertBefore()方法联合使用。其中,appendChild() 方法在节点的子节点列表末添加新的子节点;insertBefore() 方法在节点的子节点列表任意位置插入新的节点。
1
document.body.appendChild(textarea);
选中值并复制
1
2textareaEle.select();
document.execCommand('copy')当然实际过程中,如果复制成功要进行相关操作,直接进行判断即可。
1
2
3
4
5
6textarea.select()
const result = document.execCommand('copy')
if (result) {
//根据实际进行设计
...
}body中将插入的内容移除
1
document.body.removeChild(textarea)
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.


