标梵互动教你js怎么点击复制链接并且选中文本?

To love is to enter into the inevitability of one day not being able to protect what is most valuable to you.

——Mohsin Hamid, Exit West

主要是要创建一个range,注释写的很清楚

import React, { useState } from 'react'

import {  Input, message } from 'antd';

import './index.scss'

export default ({ userInfomation = {}, type, isVisible, handleToggleLayer,  jobName = '' }) => {

const [tabType, setTabType] = useState(1)

const tenantId = localStorage.getItem('tenantId')

const [inputValue, setInputValue] = useState(`${window.location.href}`)

const onChangeInput = e => {

// console.log(e.currentTarget.value);

const v = e.currentTarget.value

setInputValue(v)

};

//复制功能

const copylink = () => {

// 在选择节点的时候,一定要只选择input

const copyDOM = document.querySelector('.middel-layer input');  //需要复制文字的节点

const range = document.createRange(); //创建一个range

window.getSelection().removeAllRanges();   //清除页面中已有的selection

range.selectNode(copyDOM);    // 选中需要复制的节点

window.getSelection().addRange(range);   // 执行选中元素

const successful = document.execCommand('copy');    // 执行 copy 操作

if (successful) {

// copyDOM.select();

message.success('复制成功!')

} else {

message.warning('复制失败,请手动复制!')

}

// 移除选中的元素

window.getSelection().removeAllRanges();

}

const onSelectInput = () => {

copyAccessKey()

document.querySelector('.middel-layer input').select() // 选中

}

return <div className={`layer-container ${isVisible ? '' : 'isHidden'}`}>

{

type === 7 ?

<div className='layer-content time-layer'>

<div className='time-layer-top border-bo'>

<div className='top-left'>

<div className='top-item active-txt' onClick={() => setTabType(1)}>

<span>链接分享</span>

<i />

</div>

</div>

<div className='close-time-img iconfont iconpopup-close-bt' onClick={() => handleToggleLayer(false)} />

</div>

<div className='share-item'>

<div className='middel-layer'>

<h4>分享职位:{jobName}</h4>

<Input

placeholder='链接'

allowClear={false}

onChange={e => onChangeInput(e)}

prefix='链接'

value={inputValue}

onFocus={() => onSelectInput()}

// defaultValue={inputValue}

/>

<p>可以将链接发送给你的微信、QQ等好友</p>

</div>

<div className='share-bottom-btn'>

<span className='cancle-btn' onClick={() => handleToggleLayer(false)}>取消</span>

<span onClick={() => copylink()}>复制链接</span>

</div>

</div>

</div> : ''

}

</div>

}

);

};

看一下效果图吧

爱一个人,就不可避免地要面对有一天会失去心之所爱的风险。—— Mohsin Hamid, Exit West

文章来源:Biaofun标梵互动(https://www.biaofun.com/)

(0)

相关推荐

  • Biaofun标梵互动Google优化分析网站被处罚怎么办?

    大规模复制内容.垃圾链接.被其他网站牵连.服务器问题.过度优化等.都可能导致网站被谷歌惩罚.很多GoogleSEO优化的新手遇到这个问题,都会开始慌,不知道自己是怎么回事,不知道怎么解决这个问题.下面 ...

  • Biaofun标梵互动最新研究:Google Seo是否偏向特定新闻网站?

    最近,Google首席执行官Sundar Pichai被要求在国会面前作证关于Google算法的潜在偏见.这不是第一次被指控Google有偏见,而且可能不会是最后一次.谷歌声称没有偏见,但许多保守派认 ...

  • 细节决定seo的结果标梵互动

    互联网时代如加蓬,日常生活如火箭.因特网世界希望在任何行业的网络中占有一席之地.但随着因特网的快速发展,许多企业投资因特网的成本越来越高.为了达到真正的低投入高产出,企业必须选择优化搜索引擎,通过用户 ...

  • 标梵互动发现居然开发微信小程序这么简单?!

    自2017年1月9日张小龙在微信公开课2017Pro上发布小程序以来,小程序已经走过了三年的时间.最初只闻其名,如今耳濡目染,可以说微信小程序已经深入了每个人的生活.阅读者可打开自己的手机微信,进入到 ...

  • 新课标----师生互动的自由天堂

    新课程标准立足于每位学生的发展,课堂无疑是促进学生发展的最前沿阵地,也是学生得以发展的最重要场所.要使学生得到发展,我觉得先要让课堂成为学生的能言堂,乐言堂,让课堂成为他们的话语自由空间,做课堂的主人 ...

  • 张泽洪:梵僧传教与社会记忆——南诏大理国梵僧研究

    内容提要:南诏大理国时期梵僧的传教活动,予南诏大理国政治与社会文化以深刻影响.论文从南方丝绸之路文化传播的视野,对南诏大理国观音显化故事中的梵僧,云南地方志及石刻资料所见的梵僧,南诏大理国梵僧传教的社 ...

  • 标梵详解php HTTP隧道详解

    在主机只能通过web访问而内部完全不出网的时候,我们一般可以通过使用上传http代理脚本代理出来,让我们实现对内网的探测. 一般常用的隧道就是reGeorg,这个工具在aspx和jsp环境下都没毛病, ...

  • 张标║梵高印象(组诗)

    (一)麦田上的云雀 凡高,你的名字是麦子 站在生命的边缘 有纯粹的热烈,拥抱金黄 麦田里腾起的云雀 以惯有的姿势 侧身冲向碧蓝的天空 但请你不要以怀疑的目光打量 只要麦田还散发灼人的热 只要云雀还在飞 ...

  • 标梵学习PHP的压缩工具扩展包

    PHP的zip压缩工具扩展包学习 总算到了 PHP 的拿手好戏上场了,前面我们学习过 Bzip2 . LZF . Phar 和 rar 这些压缩相关扩展在 PHP 中的使用,不过它们要么是太冷门,要么 ...