前端实现点击复制内容到粘贴板功能

Document.execCommand()

Document.execCommand()是操作剪贴板的传统方法,各种浏览器都支持。

复制时,先选中文本,然后调用document.execCommand('copy'),选中的文本就会进入剪贴板。

当需要选中的内容是文本输入标签(input、textarea)

如果是文本输入标签,标签不可以赋予disable或者readonly,这会影响select()方法

javascript 复制代码
const input = document.querySelector('#input'); // 选取input元素
input.select(); // 选中文本
document.execCommand('copy'); // 执行浏览器复制命令
this.$message.success("已复制到粘贴板!");

当需要选中的内容不是文本输入标签(input、textarea)

需要主动创建一个可输入文本的标签(input和textarea)然后将待复制的文本赋值给这个标签,再调用.select()方法选中这个标签才能继续执行

javascript 复制代码
const input = document.createElement("input"); // 新增一个input
input.style.position = "relative"; // 将它隐藏(注意不能使用display或者visibility,否则粘贴不上)
input.style.zIndex = "-9";
document.body.appendChild(input); // 追加
input.value = copyContent; //copyContent为需要复制的内容   设置文本框的内容
input.select(); // 选中文本
document.execCommand("copy"); // 执行浏览器复制命令
this.$message.success("已复制到粘贴板!");
相关推荐
幼儿园技术家11 小时前
浏览器加载html、css、js的顺序
前端
爱分享的鱼鱼11 小时前
Vue生命周期钩子详解与实战应用
前端·vue.js
晴殇i11 小时前
CSS Grid 与 Flexbox:现代前端布局的双子星
前端·css
曹卫平dudu11 小时前
一起学习TailWind Css
前端·css
sosojie12 小时前
and+design的table前端本地分页处理
前端·vue.js
炫饭第一名12 小时前
前端玩转 AI 应用开发|SSE 协议与JS中的流式处理🌊
前端·人工智能·程序员
前端老宋Running12 小时前
一种名为“Webpack 配置工程师”的已故职业—— Vite 与“零配置”的快乐
前端·vite·前端工程化
用户66006766853912 小时前
从“养猫”看懂JS面向对象:原型链与Class本质拆解
前端·javascript·面试
parade岁月12 小时前
我的第一个 TDesign PR:修复 Empty 组件的 v-if 警告
前端
云鹤_12 小时前
【Amis源码阅读】低代码如何实现交互(下)
前端·低代码·架构