Vue クリックしてコンテンツをコピーする方法 - クリップボードの使用

クリップボード.js:

Clipboard.js は、テキストをクリップボードにコピーする機能を実装する軽量の JavaScript プラグインです。このプラグインを通じて、入力ボックス、テキスト フィールド、DIV 要素などのテキスト コンテンツをクリップボードにコピーできます
。clipboard.js は、Chrome 42 以降、Firefox 41 以降、IE 9 以降、Opera 29 以降、Safari の主流ブラウザをサポートしています。 10+;

ダウンロード

npm install clipboard --save

使用

クリップボードからコンテンツをコピーする方法:

  • ターゲットからターゲット コンテンツをコピーする
  • 関数を通じてコピーされるコンテンツ
  • 属性を介してコピーされたコンテンツを返します

js ファイルをインポートします。

import Clipboard from 'clipboard';
new Clipboard('.btn')
  1. シナリオ 1: クリックして入力ボックスの内容をコピー:ここに画像の説明を挿入します
    非常に一般的な使用例は、別の要素から内容をコピーすることです。この機能を実現するには、data-clipboard-target 属性をターゲット要素に追加します。
    この属性の値は、別の要素と一致するセレクターです。
  • html:
在这里插入代码片
```<!-- Target -->
<input id="foo" value="复制文本">
<!-- Trigger -->
<button class="btn" data-clipboard-target="#foo">
    <img src="assets/clippy.svg" alt="Copy to clipboard">
</button>
  1. シナリオ 2: 別の要素からテキストを切り取る
    data-clipboard-action 属性を定義して、コンテンツをコピーするか切り取るかを指定できます。デフォルトは copy です。
    ここに画像の説明を挿入します
  • html:
<!-- Target -->
<textarea id="bar">点击下面按钮复制文本.</textarea>

<!-- Trigger -->
<button class="btn" data-clipboard-action="cut" data-clipboard-target="#bar">
    Cut to clipboard
</button>

注: 切り取り操作は、 または 要素にのみ有効です。

  • シナリオ 3: 属性からテキストをコピーする
    別の要素からコンテンツをコピーする必要さえありません。data-clipboard-text 属性をターゲット要素に設定するだけです。
    ここに画像の説明を挿入します

  • html:

<button class="btn" data-clipboard-text="这是复制文本">
    Copy to clipboard
</button>
  • シナリオ 4: コピー後にユーザーのフィードバックを表示するか、ユーザーがコピーまたは切り取った後に選択したテキストを取得したい
    ここに画像の説明を挿入します
  • HTML(パグ形式)
el-button(v-if='shopCode' type='text' @click='copyShopCode' size='mini' class='copy') 复制门店code
  • js
import Clipboard from 'clipboard';
....

    // 复制门店code函数
    copyShopCode() {
    
    
      const clipboard = new Clipboard('.copy', {
    
    
        // 点击copy按钮,直接通过text直接返回复印的内容
        text: () => this.baseInfo.shopCode,
      });
        // 通过传递DOM选择器,HTML元素或HTML元素列表实例化
      clipboard.on('success', (e) => {
    
    
        this.$message.success(`复制成功,内容为:${
      
      e.text}`);
        e.clearSelection();
          // 释放内存
        clipboard.destroy();
      });
      clipboard.on('error', () => {
    
    
          // 不支持复制
        this.$message.error('该浏览器不支持自动复制');
          // 释放内存
        clipboard.destroy();
      });
    },

おすすめ

転載: blog.csdn.net/khadijiah/article/details/107369726