vue 复制功能

 

实现:

 let message =
        `       ${name}
        电话:${item.phone}
        部门:${item.department}
        职务: ${item.post}
        邮箱:${item.email}`;
        navigator.clipboard.writeText(message).then(() => {
            this.$message.success('复制成功')
        })

 上面实现的在本地值行没问题,但是在测试环境发布之后会报错:

Cannot read properties of undefined (reading 'writeText')

所以需要兼容下:这个兼容可能还有问题 所以有用插件的 npm install clipboard --save ,等我使用了再来写  

copyId=row=>{
                                    let message =`12222222`;
                                    // navigator.clipboard.writeText(message).then(() => {
                                    //     this.$message({
                                    //         type: "success",
                                    //         message: "复制成功!",
                                    //     });
                                    // })
                                    if (navigator.clipboard && window.isSecureContext) {
                                        // navigator clipboard 向剪贴板写文本
                                        this.$message.success('复制成功!')
                                        return navigator.clipboard.writeText(message)
                                    } else {
                                        // 创建text area
                                        const textArea = document.createElement('textarea')
                                        textArea.value = message
                                        // 使text area不在viewport,同时设置不可见
                                        document.body.appendChild(textArea)
                                        textArea.focus()
                                        textArea.select()
                                        this.$message.success('复制成功')
                                        return new Promise((res, rej) => {
                                        // 执行复制命令并移除文本框
                                        document.execCommand('copy') ? res() : rej()
                                        textArea.remove()
                                        })
                                    }
                                },

  

 

 

posted @ 2022-05-30 09:45  世界我快乐  阅读(888)  评论(0编辑  收藏  举报