Js Vue 一键复制文本内容 - clipboard.js(兼容谷歌等主流浏览器)- 附完整示例

clipboard.js将文本复制到剪贴板应该不难。它不需要几十个步骤来配置,也不需要数百个KB来加载。但最重要的是,它不应该依赖于Flash或任何臃肿的框架。

这就是clipboard.js存在的原因

目录

效果

一、准备工作

1、安装依赖包

2、示例版本 

二、使用步骤

1、在index.html文件中引入依赖包

2、单文件使用

三、完整示例


 

官方文档clipboard.js — Copy to clipboard without Flash

clipboard.js — Copy to clipboard without FlashCopy text to the clipboard shouldn't be hard. It shouldn't require dozens of steps to configure or hundreds of KBs to load. But most of all, it shouldn't depend on Flash or any bloated framework. That's why clipboard.js exists.icon-default.png?t=N7T8https://clipboardjs.com/

浏览器兼容

 图片来源:JavaScript 实现复制功能 | 菜鸟教程

效果

一、准备工作

1、安装依赖包

npm install clipboard --save

2、示例版本 

"clipboard": "^2.0.8"

二、使用步骤

1、在index.html文件中引入依赖包

代码如下(示例):

<script type=“text/javascript” src="dist/clipboard.min.js"></script>

2、单文件使用

代码如下(示例):

import ClipboardJS from 'clipboard';
const clipboard = new ClipboardJS('.btn');

clipboard.on('success', function(e) {
  console.log(e);
  console.info('Text:', e.text);
  message.info('复制成功');
  e.clearSelection();
});

clipboard.on('error', function(e) {
  if(!e.text) message.error('暂无可复制的内容')
});

三、完整示例

index.html

<!DOCTYPE html>
<html lang="zh-cmn-Hans">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>XXX</title>
    <script type=“text/javascript” src="dist/clipboard.min.js"></script>
  </head>
  <body>
    <div id="app"></div>
</html>

Clipboard.vue

<template>
  <a-tooltip>
    <template #title>点击复制</template>
    <span style="margin: 5px 8px;">
      <span class="copy" style="cursor: pointer;" :data-clipboard-text="coord">{{coord}}</span>
    </span>
  </a-tooltip>
</template>

<script lang="ts" setup>
  import { ref, onBeforeUnmount } from 'vue';
  import { message } from 'ant-design-vue';
  import ClipboardJS from 'clipboard';
   
  const coord = ref('这里是可以点击复制的文本内容哦');
  const clipboard = new ClipboardJS('.copy');

  clipboard.on('success', function(e) {
    console.log(e);
    console.info('Text:', e.text);
    message.info('复制成功');
    e.clearSelection();
  });

  clipboard.on('error', function(e) {
    if(!e.text) message.error('暂无可复制的内容')
  });

  onBeforeUnmount(() => {
    clipboard.destroy();
  })
</script>

  欢迎扫码下方二维码关注VX公众号

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
`vue-loader.conf.js` 是一个用于配置 Vue 单文件组件加载器(vue-loader)的配置文件。它一般用于 Vue CLI 2.x 中的 webpack 配置。 在 Vue 项目中,`.vue` 文件是一种特殊的文件类型,包含了模板、脚本和样式等组件相关代码。为了能够在 webpack 构建过程中解析和处理这些 `.vue` 文件,我们需要使用 vue-loader。 `vue-loader.conf.js` 文件中的配置项会被用于 vue-loader 的加载过程,以定义如何解析和转换 `.vue` 文件中的各个部分。 下面是一个简单的 `vue-loader.conf.js` 示例: ```javascript // vue-loader.conf.js module.exports = { loaders: { css: 'vue-style-loader!css-loader', scss: 'vue-style-loader!css-loader!sass-loader' // 其他加载器配置... } }; ``` 在上述示例中,我们定义了 `css` 和 `scss` 两个加载器的配置。这些配置会告诉 vue-loader 如何处理 `.vue` 文件中的样式部分。 注意,以上示例中的加载器配置是基于 webpack 1.x 的写法。在 webpack 2.x 或更高版本中,可以使用 `rules` 或 `module.rules` 来定义加载器规则。例如: ```javascript // vue-loader.conf.js module.exports = { rules: [ { test: /\.css$/, use: [ 'vue-style-loader', 'css-loader' ] }, { test: /\.scss$/, use: [ 'vue-style-loader', 'css-loader', 'sass-loader' ] } // 其他加载器规则... ] }; ``` 在上述示例中,我们使用 `rules` 定义了两个加载器规则,分别用于处理 `.css` 和 `.scss` 文件。 `vue-loader.conf.js` 中的配置还可以包括其它一些选项,如预处理器的配置、CSS Modules 的开启等。具体配置项可以参考 vue-loader 的文档。 总之,`vue-loader.conf.js` 是一个用于配置 vue-loader 的文件,用于定义如何解析和处理 Vue 单文件组件中的各个部分。在 Vue CLI 2.x 中,它被用作 webpack 配置文件的一部分。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值