react实现点击复制

2023-05-16

1、使用浏览器提供的document.execCommand('copy')

2、使用copy-to-clipboard库

document.execCommand("copy")

1、document.execCommand封装

function copy(e) {
    let transfer = document.createElement('input');
    document.body.appendChild(transfer);
    transfer.value = target.value;  // 这里表示想要复制的内容
    transfer.focus();
    transfer.select();
    if (document.execCommand('copy')) { //判断是否支持document.execCommand('copy')       document.execCommand('copy');
    }
    transfer.blur();
    console.log('复制成功');
    document.body.removeChild(transfer);
    
}
​
$('#copyBtn').addEventListener('click', copy);

其实就是新创建了一个inputDOM元素,然后选中该元素,把要复制的内容赋给input.value,这个时候执行document.execCommand('copy'),会把当前页面所有选中的内容复制到剪贴板,也就实现了复制的操作,最后再把新建的DOM元素移除,在不影响DOM树的情况下达到复制的目的。

拓展

document.execCommand() 方法其实用法还有很多,它可以使当前选中的可编辑内容实现一些常用的操作,如copy、cut、paste、delete、contentReadOnly等等,具体请看document.execCommand,但使用这个API需要谨慎,因为这相当于篡改网页原生的交互,可能会和用户的交互操作产生冲突,发生意想不到的结果。但是在某些特定的场景,使用这个API能达到不错的效果,比如富文本编辑器里就是个神器,值得慢慢去研究。

2、使用copy-to-clipboard库

npm下载

npm i --save copy-to-clipboard

yarn下载

yarn add copy-to-clipboard

引入

import copy from 'copy-to-clipboard';

直接使用

 function CopyUrl() {
   copy(内容)
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

react实现点击复制 的相关文章

  • 引发了异常: 读取访问权限冲突。**pStu_Head** 是 0x55BAA6E0。

    问题 xff1a 这几天在研究一个图书馆信息管理系统的代码 xff0c 结果在第一步就出错 xff0c 一直报错 其中的 deroy list create函数 是为一个结构体指针申请内存空间 xff0c 并对其该结构体的成员变量进行赋值
  • xxx不在 sudoers 文件中。此事将被报告。

    出现此类问题是因为当前用户未被授予sudo权限 xff0c 可通过以下步骤添加sudo权限 1 xff0c 通过su命令切换到root用户 注 xff1a 输入密码的过程屏幕上不会有输出 2 xff0c 在终端输入 visudo xff0c
  • Centos系统中使用Firefix播放视频

    这几天想尝试在Linux系统中使用Firefix来看视频 xff0c 在网上找了很多方法 xff0c 什么安装flash xff0c 安装FFmpeg视频解码器的 xff0c 费了很多时间也没有成功 xff0c 最后终于找到方法了 xff0
  • uboot源码分析1-启动第一阶段-2.5.uboot和系统移植第5部分-朱有鹏-专题视频课程...

    uboot源码分析1 启动第一阶段 2 5 uboot和系统移植第5部分 6166人已学习 课程介绍 本课程为uboot学习的第5部分 xff0c 主要内容是uboot启动的第一阶段start S文件中的汇编初始化部分 学习本部分的主要目标
  • java关于对象比较---equals与hashCode详解

    目录 前言 一 equals方法 二 hashCode 1 什么是hashCode 2 hashCode的使用 1 相等值的hashCode一定相等 2 不同的值 hashCode也可能相等的情况 三 为什么hashCode和equals要
  • 状态码500问题

    1 从客户端解决500内部服务器错误是由服务器造成的 xff0c 但也可以从客户端尝试解决 步骤如下 xff1a 1 xff09 清除缓存 xff0c 并删除Cookie后 xff0c 重新启动浏览器 2 xff09 把它作为一个504的错
  • MapReduce详解

    目录 xff08 一 xff09 MapReduce的基本知识 xff08 二 xff09 MapReduce计算框架概述 xff08 三 xff09 MapReduce 具体计算过程 xff08 一 xff09 MapReduce的基本知
  • 进程(线程)调度及调度的九种算法。

    2 1 进程调度 进积 线程 调度即处理机调度 一般在大型批 处理系统中配有作业调度 xff0c 而其他系统中 xff0c 通常无须配置作业调度 xff1b 而在采用虚拟存储管理的操作系统中 xff0c 中级调度被页面调入策略 页面置换策略
  • 网络配置:vlan配置

    一 进入管理员系统并修改交换机名字 system 进入管理员系统 sysname XX 修改名字 二 设置PC端口 vlan XXX 配置单个vlan 例 xff1a vlan 10 创建vlan10 vlan batch XXX XXXX
  • 51单片机——LCD12864

    目录 LCD12864简介 特征 工作参数 LCD12864引脚说明 LCD12864常用指令集 基本指令 扩充指令 字符表 汉字显示地址编排 编辑 绘图地址与汉字显示编排示意图 程序设计 图形显示程序 字符显示程序设计 LCD12864简
  • Windows10系统的启动流程

    名词解释 xff1a windows boot manager xff1a 是windows启动管理器 启动管理器 xff08 boot manager xff09 是windows引导程序 grub lio的 引导操作系统启动的一段程序
  • xshell 双击没有反应

    xshell双击无反应 xff08 解决办法 xff09 1 打开服务 xff1a 打开命令行窗口 xff08 win 43 r 输入cmd xff09 xff0c 打开服务 xff08 输入services msc xff09 2 在服务
  • Linux下的yum升级(升级到高版本)

    Linux下的yum怎么升级 xff1f 1 备份默认的yum mv etc yum repos d etc yum repos d backup 2 设置新的yum目录 mkdir etc yum repos d amp amp cd e
  • (成功-桌面特简单,但右键不能打开应用)Xmanager 5远程连接CentOS7图形化界面

    有yum grouplist上面2个文件中的GNOME Desktop 就不需要再单独安装 Desktop 了 yum y groupinstall 34 X Window System 34 yum groupinstall 34 GNO
  • uboot源码分析2-启动第二阶段-2.6.uboot和系统移植第6部分-朱有鹏-专题视频课程...

    uboot源码分析2 启动第二阶段 2 6 uboot和系统移植第6部分 5873人已学习 课程介绍 本课程为uboot学习的第6部分 xff0c 主要内容是uboot启动的第二阶段start armboot函数 本阶段是开发板级别的硬件初
  • gitHub无法下载的解决方法

    小技巧 有时候通过git clone从github上更新代码失败 比如 git clone https github com xxx git 提示下载失败 可以尝试把https 换成 git git clone git github com
  • python中类和函数变量的 (作用域大小、使用方法)

    usr bin python coding UTF 8 class Employee 39 所有员工的基类 39 TotalCount 61 0 name 61 34 张三 34 def init self A1 A2 初始化文件名Empl
  • Python 中%d,%s等特殊符号的含义

    常见的格式化符号如下表 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61
  • 解决服务器时间Local time和RTC time不一致的问题

    今天遇到了一个问题 xff0c 发现程序读取的时间比实际的时间快了几分钟 执行 timedatectl status 发现 Local time比实际的快 xff0c 但是RTC time是准确的 各种google也没搞懂怎么回事 xff0
  • python中的copy.copy和copy.deepcopy

    1 浅copy时 xff0c 1级的值和个数永远不会变化 xff0c 但是如果1级不是具体的值 xff0c 是集合 列表等时2级的子值会变化 2 深deepcopy时 xff0c b则会有自己的独立空间 xff0c 不会再受a任何影响 一个

随机推荐