vue中js实现点击复制文本到剪贴板-三种方案

news/2024/12/2 21:51:23/

vue中js实现点击复制文本到剪贴板-三种方案

因为在网上找了一些很杂乱 不适用 所以自己写一篇记录分享一下
vue中js实现点击复制文本到剪贴板-三种方案

效果:
在这里插入图片描述

方案一:使用原生API(clipboard)

首先,我们需要安装clipboard库,它是一个轻量级的JavaScript库,用于复制/粘贴文本到剪贴板。

命令行运行npm install clipboard --save进行安装。

 npm install clipboard --save

使用该库实现代码如下:

<template><div><button @click="copyText">复制文本</button></div>
</template><script>
import clipboard from 'clipboard';export default {methods: {copyText() {let text = 'Hello World';clipboard.writeText(text);alert('已复制到剪贴板!');}}
}
</script>

方案二:使用v-copy指令

我们可以使用vue指令,使元素支持复制文本到剪贴板。

<template><div><button v-copy="text">复制文本</button></div>
</template><script>
export default {data() {return {text: 'Hello World'}}
}
</script>// 注册指令
Vue.directive('copy', {bind: function(el, binding) {el.$copy = function() {const textarea = document.createElement('textarea');textarea.value = binding.value;document.body.appendChild(textarea);textarea.select();document.execCommand('Copy');document.body.removeChild(textarea);}el.addEventListener('click', el.$copy);},unbind: function(el) {el.removeEventListener('click', el.$copy);}
});

方案三:使用clipboard.js库

clipboard.js库是一个现成的插件,可以通过安装运用它来实现复制文本到剪贴板的功能。

命令行运行 npm install clipboard --save 进行安装。

npm install clipboard --save 

使用clipboard.js实现代码如下:

<template><div><button class="copy-btn" data-clipboard-text="Hello World">复制文本</button></div>
</template><script>
import ClipboardJS from 'clipboard';export default {mounted() {new ClipboardJS('.copy-btn');}
}
</script>

方案三:使用clipboard.js库(vue3版)

安装 clipboard.js 库
可以使用 npm 或 yarn 安装 clipboard.js,命令如下:

npm i clipboard
# 或者
yarn add clipboard

完整代码如下:

<template><button class="copy-btn">复制</button>
</template><script setup>
import { onMounted, ref } from 'vue'
import ClipboardJS from 'clipboard'const clipboardText = ref('hello world')
const copyText = () => {const clipboard = new ClipboardJS('.copy-btn', {text() {return clipboardText.value}})clipboard.on('success', () => {console.log('复制成功')})clipboard.on('error', () => {console.log('复制失败')})
}onMounted(() => {copyText()
})
</script>

以上三种方案,都可以实现复制文本到剪贴板的功能,具体应用中,可根据实际情景选择适合自己的方案。


http://www.ppmy.cn/news/563068.html

相关文章

深入浅出WPF之剖析最简单的XAML代码

<Window x:Class="WpfApp3.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml

【无标题】基于c++的五子棋游戏

链接&#xff1a;https://pan.baidu.com/s/1rpfcUtbL2e0JtZZNnWNPUQ 提取码&#xff1a;kizo --来自百度网盘超级会员V1的分享 在vs上写的简陋的五子棋小游戏&#xff0c;欢迎大家玩玩

【C语言】 五子棋 棋盘的绘制

目录 源码分享 效果展示 源码分享 #include<stdio.h>void test3() //打印棋盘 {int i,j;int row9,col9;for(i1;i<row;i) //循环9次 行{if(i1) //第一行{printf("┌ "); //第一列//第一行顶部 ┬for(j1;j<col-2;j){printf("┬ "…

C++项目1——五子棋游戏

参考视频 【C/C】大一学年设计&#xff1a;五子棋(含GUI/网络/算法)_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1V54y1D7pD?spm_id_from333.1007.top_right_bar_window_custom_collection.content.click 目录 一、控制台版本 1.1 代码 1.2 实现效果 二、存储功…

【软考网络管理员】2023年软考网管初级常见知识考点(4)-局域网基本概念

涉及知识点 局域网特点&#xff0c;局域网体系结构&#xff0c;局域网拓扑结构&#xff0c;局域网传输介质&#xff0c;软考网络管理员常考知识点&#xff0c;软考网络管理员网络安全&#xff0c;网络管理员考点汇总。 文章目录 涉及知识点前言一、局域网的特点二、局域网体系…

javafx逻辑实现五子棋基本功能(悔棋,重新开始,保存棋谱,复盘,人人对战,单机模式

javafx逻辑实现五子棋基本功能&#xff08;悔棋&#xff0c;重新开始&#xff0c;保存棋谱&#xff0c;复盘&#xff0c;人人对战&#xff0c;单机模式&#xff09; 做这个项目&#xff0c;本身目的仅仅是想应用学过的知识做个小项目&#xff0c;想知道它们在实际开发中应该如…

日新五子棋游戏设计方案

目 录 一、摘要&#xff1a;................................. 1 二、关键字&#xff1a;............................... 1 三、程序主流程图........................... 2 四、需求分析&#xff1a;............................. 3 五、关键部分设计算法及实现&…

五子棋Java课设

五子棋基本思路 第一步&#xff1a;要分俩个类&#xff0c;一个是五子棋本身主类&#xff08;包括黑白棋下棋方式&#xff09;&#xff0c;一个是棋子类&#xff08;包括构建画布进行棋盘的设计&#xff0c;使其构成等距离的格子&#xff0c;正方形棋盘15*15格式&#xff09;。…