首页 > 其他分享 >vue复制粘贴功能

vue复制粘贴功能

时间:2024-05-16 17:44:21浏览次数:26  
标签:功能 vue textArea blog 复制粘贴 clipboard 复制 message navigator

第一种【推荐】

npm install clipboard --save
<template>
  <div>
    <input type="text" v-model="copyText" />
    <button @click="copyToClipboard">复制到剪贴板</button>
  </div>
</template>
 
<script>
import Clipboard from 'clipboard';
 
export default {
  data() {
    return {
      copyText: '这是要复制的文本'
    };
  },
  methods: {
    copyToClipboard() {
      const clipboard = new Clipboard('.btn', {
        text: () => this.copyText
      });
 
      clipboard.on('success', () => {
        console.log('复制成功');
        // 清理,防止多次触发
        clipboard.destroy();
      });
 
      clipboard.on('error', () => {
        console.log('复制失败');
        // 清理,防止多次触发
        clipboard.destroy();
      });
    }
  }
};
</script>

第二种:测试环境可以,正式环境可以

在 Chrome 的 DevTools 控制台下执行 navigator.clipboard 返回 undefined,经查找资料发现是浏览器禁用了非安全域的 navigator.clipboard 对象,哪些地址是安全的呢?

安全域包括本地访问与开启TLS安全认证的地址,如 https 协议的地址、127.0.0.1 或 localhost 。

// 此方案在测试环境可以。正式环境不可以。
copyLink{ try { await navigator.clipboard.writeText(row.landingPageUrl) console.log('链接已复制') this.$message.success('复制成功') } catch (error) { this.$message.error('复制链接失败') } }

下面为解决方案:

// 此方案可以
copyLink (row) { if (navigator.clipboard && window.isSecureContext) { navigator.clipboard .writeText(row.landingPageUrl) .then(() => { this.$message.success('复制成功') }) .catch(() => { this.$message.error('复制失败') }) } else { // 创建text area const textArea = document.createElement('textarea') textArea.value = row.landingPageUrl // 使text area不在viewport,同时设置不可见 document.body.appendChild(textArea) textArea.focus() textArea.select() return new Promise((resolve, reject) => { // 执行复制命令并移除文本框 document.execCommand('copy') ? resolve() : reject(new Error('出错了')) textArea.remove() }).then( () => { this.$message.success('复制成功') }).catch(() => { this.$message.error('复制失败') }) } },

来源:https://blog.csdn.net/weixin_44690195/article/details/128251421?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-128251421-blog-134970966.235%5Ev43%5Epc_blog_bottom_relevance_base7&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-128251421-blog-134970966.235%5Ev43%5Epc_blog_bottom_relevance_base7&utm_relevant_index=1

标签:功能,vue,textArea,blog,复制粘贴,clipboard,复制,message,navigator
From: https://www.cnblogs.com/kpengfang/p/18196376

相关文章

  • 车载T-Box逻辑功能测试方案
    T-Box(TelematicsBox,车载终端)是一种安装在汽车上的控制器,用于实现车辆的远程监控、数据采集、通信和控制等功能。T-Box在汽车网联中扮演着重要的角色,它是连接汽车与外部世界的关键节点之一。通过T-Box,车辆可以与云端服务器、其他车辆、交通基础设施以及智能设备进行通信和数据交换......
  • 使用 Redis Zset 有序集合实现排行榜功能
    一、前言排行榜功能是非常常见的需求,例如商品售卖排行榜单、游戏中的积分排行榜、配送员完单排行榜等。实现排行榜功能需要高效地对大量数据进行排序和查询,如果直接进行数据库查询对应业务排行榜资源开销会非常大,一般会将对应榜单需要的数据做单独存储记录,查询时只要对榜单......
  • 前端面试题 - vue的双向绑定原理是什么?
    前端面试题-vue的双向绑定原理是什么?vue2的双向数据绑定是通过数据劫持结合发布者订阅者模式的方式来实现。通过object.defineProperty来劫持各个属性的setter,getter,在数据变化时发布消息给订阅者,触发相应的监听回调来渲染视图。Vue3利用Proxy代理来处理双向数据绑定。可以......
  • Summer '24:不容错过的Salesforce Flow 10大新功能!
    Flow是整个Salesforce平台自动化的未来。自从WorkflowRules和ProcessBuilders被淘汰,Salesforce将重点放在了Flow上,一直在将大量资源用于开发Flow创新,本次Summer'24中Flow也有不少亮眼的更新!01FlowCreationWizard和Flow类型创建Flow与以前有所不同。你看到的第一步只是让......
  • INFINI Labs 产品更新 | Console 1.24.0 操作日志审计功能发布
    INFINILabs产品又更新啦~,包括Console,Gateway1.24.0。本次各产品更新了很多亮点功能,如Console增加操作日志审计功能,优化数据探索字段统计,修复Gateway增加认证后添加实例失败等问题。以下是本次更新的详细说明。INFINIConsolev1.24.0INFINIConsole是一款非常轻量级的......
  • vue路由配置
    一目的建一个vue路由 二步骤1.安装路由,顺便打开package.json方便查看版本npminstallvue-router@4 2.src下创建router目录,route目录创建index.js文件import{createRouter,createWebHistory}from"vue-router";//创建路由规则constroutes=[......
  • vue3百科全书
    @目录2.2.【基于vite创建】(推荐)2.3.【一个简单的效果】3.Vue3核心语法3.1.【OptionsAPI与CompositionAPI】3.2.【拉开序幕的setup】setup概述setup的返回值setup与OptionsAPI的关系setup语法糖3.3.【ref创建:基本类型的响应式数据】3.4.【reactive创建:对象......
  • Vue-快速启动指南-全-
    Vue快速启动指南(全)原文:zh.annas-archive.org/md5/056a1fe7509ea158cc95e0fe373880b7译者:飞龙协议:CCBY-NC-SA4.0前言直到几年前,直接DOM操作是前端开发的标准,jQuery一直引领潮流。所有这一切都随着现代JavaScript库和框架的普及而开始改变,主要是Angular和React。......
  • VueJS2-学习指南-全-
    VueJS2学习指南(全)原文:zh.annas-archive.org/md5/0B1D097C4A60D3760752681016F7F246译者:飞龙协议:CCBY-NC-SA4.0前言这本书是关于Vue.js的。我们将开始我们的旅程,试图理解Vue.js是什么,它与其他框架相比如何,以及它允许我们做什么。我们将在构建小型有趣的应用程序的同......
  • Vue3-示例-全-
    Vue3示例(全)原文:zh.annas-archive.org/md5/84EBE0BE98F4DE483EBA9EF82A25ED12译者:飞龙协议:CCBY-NC-SA4.0前言Vue是主要框架之一,拥有庞大的生态系统,并因其在开发应用时的易用性以及能够帮助你快速实现令人印象深刻的开发结果而不断增加采用率。本书探讨了最新的Vue版本......