vue專案複製元件clipboard

花程式媛發表於2020-10-25

1.實現背景

有時候專案中會有複製較長文字需要複製,為實現這個功能,封裝公共方法

2.公共方法

import Vue from 'vue'
import Clipboard from 'clipboard'

function clipboardSuccess() {
  Vue.prototype.$message({
    message: 'Copy successfully',
    type: 'success',
    duration: 1500
  })
}

function clipboardError() {
  Vue.prototype.$message({
    message: 'Copy failed',
    type: 'error'
  })
}

export default function handleClipboard(text, event) {
  const clipboard = new Clipboard(event.target, {
    text: () => text
  })
  clipboard.on('success', () => {
    clipboardSuccess()
    clipboard.destroy()
  })
  clipboard.on('error', () => {
    clipboardError()
    clipboard.destroy()
  })
  clipboard.onClick(event)
}

3.頁面引入

import clipboard from '@/utils/clipboard'

// 呼叫
clipboard(text, event)

 

相關文章