记录:Google使用剪切板

358 阅读1分钟
async getClipboardData() {
    try {
        const { clipboard } = navigator
        if (!clipboard) return
        const text = await clipboard.readText()
        return text
    } catch (err) {
        console.log('读取剪贴板失败:', err)
    }
},

这是直接调用Chrome的clipboard
在以下情况下会失效:

  • 当前浏览器URL是http开头(Chrome只支持https协议的剪切板api调用)

下面的方式是直接调用事件绑定上的Event

handlePaste(event) {
    // console.log('======event:', event)
    const clipboardData = event.clipboardData.getData('text')
    // 获取当前剪切板中的数据并按照回车、制表、换行分成数组并过滤(空值以及重复值)
    const inputValueArr = clipboardData..split(/\n|\t|\r/)
    let result = [...new Set([...inputValueArr, ...this.pasteSelectedValue])] || []
    result = result.filter((item) => item)
    return result
},