You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中如何从剪贴板获取数据?getAsString无响应问题

JavaScript 获取剪贴板数据的正确方式

你遇到的问题出在直接通过固定索引items[2]访问剪贴板项——剪贴板中的项数量、顺序不固定,而且只有当项的类型为文本类时,getAsString()才会触发回调。如果目标项不是文本类型,回调自然不会执行。

正确处理方式:

方式1:遍历剪贴板项,筛选文本类型

遍历clipboardData.items,检查每个项的type是否包含text,再调用getAsString():

const input = document.createElement('input')
document.body.prepend(input)
input.onpaste = (event) => {
  // 遍历所有剪贴板项
  for (const item of event.clipboardData.items) {
    // 只处理文本类型的项
    if (item.type.includes('text')) {
      item.getAsString(text => {
        console.log('剪贴板文本内容:', text)
        // 这里可以自定义你的处理逻辑
      })
    }
  }
}

方式2:直接使用getData()方法

如果只需要纯文本内容,用clipboardData.getData('text/plain')更简洁:

const input = document.createElement('input')
document.body.prepend(input)
input.onpaste = (event) => {
  const text = event.clipboardData.getData('text/plain')
  console.log('剪贴板纯文本:', text)
  // 自定义处理逻辑
}

针对Google Sheets的说明

从Google Sheets复制内容时,剪贴板会包含多种格式的项(比如纯文本、HTML格式、表格专用格式等),必须筛选文本类型的项,避免访问到非文本项导致回调不执行。

内容的提问来源于stack exchange,提问作者Test

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 22:44:52