剪贴板功能的实现

Posted cq1715584439

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剪贴板功能的实现相关的知识,希望对你有一定的参考价值。

利用的插件包  clipboard-polyfill

 1 import React,  Component  from ‘react‘
 2 
 3 import clipboard from "clipboard-polyfill"
 4 import Button from "antd"
 5 
 6 export default class Main extends Component 
 7     constructor(props)
 8         super(props);
 9         this.state=
10             opj:
11                 "param.code.name":"姓名",
12                 "param.codexname":"昵称",
13                 "param.code.age":"年龄",
14                 "param.code.gender":"性别",
15                 "param.code.hobby":"爱好",
16             ,
17             val:"大家好这是新来的同学,叫 ,也可以叫,今年了,喜欢,也喜欢",
18             changeVal:""
19         
20     
21     render() 
22         //console.log(Object.entries(this.state))
23         return (
24             <div>
25                 <div className="top">
26                     Object.entries(this.state.opj).map((item,index)=>
27                         return <Button  className="btn" key=index onClick=this.copy.bind(this,index,item)>item[1]</Button>
28                     )
29                 </div>
30                 <textarea name="" id="text" ref="text" onPaste=this.paste.bind(this) cols="30" rows="10" value=this.state.val onChange=(e)=>
31                     this.setState(
32                         val:e.target.value
33                     )
34                  />
35                 <button onClick=this.del.bind(this)>去除value</button>
36                 <button onClick=this.add.bind(this)>补充value</button>
37             </div>
38         )
39     
40     copy(index,item)
41         //document.execCommand("Copy"); // 执行浏览器复制命令
42         // let btn=document.querySelectorAll(".btn")[index]
43         // btn.value=`[$item[1]($item[0])]`
44         // btn.select()
45         // console.log(document.execCommand("Copy"))
46         // btn.value=item[1]
47         
48         let text=`[$item[1]($item[0])]`;
49         //将文字复制到剪贴板
50         clipboard.writeText(text)
51         //console.log(text);
52     
53     del()
54         let str=this.state.val;
55         str=str.replace("]","")
56         let res=/\[.*?\(/g;
57         str=str.replace(res,"(")
58         //console.log(str);
59         this.setState(
60             val:str
61         )
62     
63     add()
64         let str=this.state.val;
65             if(str.indexOf("]")<0)
66                 console.log(111)
67                 str=str.replace(/\((.+?)\)/g,  ($0,$1,$2)=> 
68                     console.log($0,$1,$2,"============");
69                     return `[$this.state.opj[$1]$$0]`
70                   );
71                   console.log(str)
72                   this.setState(
73                     val:str
74                   )
75             
76        
77     
78     //粘贴触发的时间
79     paste()
80         //--------
81         this.setState(
82             changeVal:this.state.val
83         )
84         
85     
86 

 

以上是关于剪贴板功能的实现的主要内容,如果未能解决你的问题,请参考以下文章

剪贴板功能的实现

JS pc端和移动端共同实现复制到剪贴板功能实现

js实现复制到剪贴板功能,兼容所有浏览器

支付宝剪贴板开启有啥用

C#中如何动态获取剪贴板中的内容(我想实现如果其中有内容就清空,在C#中不要实现复制,粘贴功能)?

js实现复制到剪贴板功能,兼容所有浏览器