react实现一键复制功能

6 篇文章 0 订阅

在这里插入图片描述

实现功能如上图:

input 和 button 按钮是在一个元素里面,需要点击复制的时候,复制到input 中的value值,可以在任何地方粘贴

代码:
//message 用于提示是否复制成功,是antd 自带的组件,可以直接引用
import { message } from 'antd'
  		<div className='inputBox' style={{position: 'relative'}}>
        	 <Input
              className={`copyInput apiInput`}
              value={this.state.apiKeyValue}
              addonAfter={
                <button onClick={this.copyAccessKey } className={`verificationCode`}>
                      点击复制</button> 
                  } /> 
               </div> 
               
    //一键复制功能
    copyAccessKey = () => {
    	//因为我的input框里面还有button 按钮,所以在选择节点的时候,一定要只选择input  
        var copyDOM = document.querySelector(".inputBox input");  //需要复制文字的节点
        var range = document.createRange(); //创建一个range
        window.getSelection().removeAllRanges();   //清楚页面中已有的selection
        range.selectNode(copyDOM);    // 选中需要复制的节点    
        window.getSelection().addRange(range);   // 执行选中元素
        var successful = document.execCommand('copy');    // 执行 copy 操作  
        if(successful){
            message.success('复制成功!')
        }else{
            message.warning('复制失败,请手动复制!')
        }
        // 移除选中的元素  
        window.getSelection().removeAllRanges(); 
    }

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值