1、用js原生监听copy事件

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title></head><body><script type="text/javascript">window.onload = function(){document.addEventListener("copy", copy);function copy(e){//做兼容e = window.event ||e;//阻止默认事件行为(复制文本)e.preventDefault();//指定添加数据e.clipboardData.setData("text", "hello,world");}}</script></body>
</html>

2、用复制工具

下载安装:npm i --save copy-to-clipboard

使用:

import React, {Component
} from 'react';
import copy from 'copy-to-clipboard';class App extends Component {handleClick = (e) => {copy(e.target.value)}render() {return (<div className="App"><p><input placeholder='请输入' onClick={this.handleClick}/>          </p><textarea></textarea></div>);}
}

3、封装复制函数

/*** 复制文本到剪切板中** @export* @param {*} value 需要复制的文本* @param {*} cb 复制成功后的回调*/
export function copy(value, cb) {// 动态创建 textarea 标签const textarea = document.createElement('textarea')// 将该 textarea 设为 readonly 防止 iOS 下自动唤起键盘,同时将 textarea 移出可视区域textarea.readOnly = 'readonly'textarea.style.position = 'absolute'textarea.style.left = '-9999px'// 将要 copy 的值赋给 textarea 标签的 value 属性  // 网上有些例子是赋值给innerText,这样也会赋值成功,但是识别不了\r\n的换行符,赋值给value属性就可以textarea.value = value// 将 textarea 插入到 body 中document.body.appendChild(textarea)// 选中值并复制textarea.select()textarea.setSelectionRange(0, textarea.value.length)document.execCommand('Copy')document.body.removeChild(textarea)if (cb && Object.prototype.toString.call(cb) === '[object Function]') {cb()}
}

使用:

import { copy } from '@/xxx/xxx'let value = '嘿嘿\r\n我换行了'
copy(value, () => {console.log('复制成功')
})

React实现复制功能相关推荐

  1. react非常适合入门者学习使用的后台管理框架

    项目简介 该项目提供一个非常简洁的后台管理ui界面,非常适合初学者学习使用.项目结构: 项目地址:GitHub项目地址 技术栈 - react - antd - react-router-dom - ...

  2. 在 react 里使用 antd

    在 react 里使用 antd 在 powershell 里npm i antd 引入方式: import '../node_modules/antd/dist/antd.css'

  3. 在React Hook里使用history.push跳转

    在React Hook里使用history.push跳转 react hook里用不了this.props.history的解决方法 首先引入 import { useHistory } from ' ...

  4. 在react hook里使用mobx(配置mobx依赖)

    在powershell里安装依赖 (直接npm i mobx或者npm i mobx-react是会报错的) npm i mobx mobx-react --save save是下载到"de ...

  5. React router 的 Route 中 component 和 render 属性理解

    React router 的 Route 中 component 和 render 属性理解 Route 标签的三个互斥属性 render.component.children Route 就是用来匹 ...

  6. react 子组件获取变量属性值

    刚刚遇到一个问题:子组件属性值绑定了变量,但是在子组件的componentDidMoiunt中拿到的值始终是undefinded.如下: 1 <PieInfo 2 title='有效病案' 3 ...

  7. 超简单的react和typescript和引入scss项目搭建流程

    1.首先我们先创建一个react项目,react官网也有react项目搭建的命令 npx create-react-app my-app cd my-app 2.安装我们项目需要的样式依赖,这个项目我 ...

  8. React Native之ViewPagerAndroid跳转页面问题

    前言: 网上目前react-native的教程较少,加上许多帖子还是用的ES5(2015年6月已发布ES6标准),有些细节很难找到答案,这里把遇到的问题做一个分享,让学习者尽量少踩坑. 出现问题: 1 ...

  9. http状态404 vscode_VS Code 调试完全攻略(5):基于浏览器的 React 应用

    每日前端夜话第344篇 翻译:疯狂的技术宅 作者:Charles Szilagyi 来源:charlesagile 正文共:1750 字 预计阅读时间:7 分钟 这次我们来研究怎样把调试器连接到用 C ...

最新文章

  1. Failed to get convolution algorithm. This is probably because cuDNN failed to initialize
  2. Connection is not open httpClient 的问题解决方案
  3. 如何高效的比较两个 Object 对象是否相等?
  4. 【OpenCV】imread读取数据为空
  5. 基于Echarts+HTML5可视化数据大屏展示—设备环境监测平台大数据平台
  6. 大数据学习笔记13:MR案例——显示每年最高温度
  7. linux查usb版本,怎么查看 ubuntu usb版本
  8. c 结构体 函数 指针
  9. Spring Boot 2.X 如何优雅的解决跨域问题?
  10. CCL语料库检索系统(网络版)
  11. FlowNet到FlowNet2.0:基于卷积神经网络的光流预测算法
  12. [网站优化实战]公共CDN库/Nginx启用Gzip/全站CDN加速
  13. Django 菜鸟教程(跑通流程)
  14. HTML5期末大作业dreamweaver作业静态HTML网页设计——甜点店(11页) 学生网页设计作品
  15. 004--python--华氏温度和摄氏温度的转换
  16. php在线编译器插件火狐,Firefox浏览器JS调试插件下载
  17. JAVA 查找PDF中落款单位所在页码及位置信息
  18. java rdt_使用 Eclipse 和 RDT 开发Ruby应用程序
  19. QAndroidJniObject::callStaticObjectMethod参数含义
  20. puppet插件fact和hiera(puppet自动化系列3)

热门文章

  1. R语言学习:卡方检验
  2. MICCAI 2020 | 基于3D监督预训练的全身病灶检测SOTA(预训练代码和模型已公开)...
  3. W3C DOM 事件模型(简述)
  4. Linux系统查看命令
  5. 高一上计算机思维导图,高一上思维导图.docx
  6. 无聊乱搞:用shell脚本实现windows下cena的评测功能
  7. linux系统取消报警声,简单几步关闭Linux报警声和修改分辨率
  8. c语言第五章习题答案汪升华,《服装美学》练习题总汇部分参考答案
  9. java map移除_Java根据条件删除Map中元素
  10. cloc rpm安装包制作