为什么不管粘贴的图片是什么格式,paste事件获取的file都是png格式

ken丶
  • 112
window.addEventListener('paste', function (e) {
  for (let i = 0, len = e.clipboardData.items.length; i < len; i++) {
    const item = e.clipboardData.items[i]
    if (item.kind === 'file') {
      const pasteFile = item.getAsFile()
      console.log(pasteFile, '-------')
    }
  }
})

这里的pasteFile不管我传的jpg还是png, 打印的都是png文件,size和我上传的图片大小完全不相符,这个要怎么处理呢?

还有一个问题,我复制了一张网络图片,粘贴在ckeditor里会生成一张src为复制的那张网图的地址的图片,他是怎么得到得那个网图得地址,paste事件里面怎么获取不到呢

回复
阅读 521
1 个回答

先看第一个问题, 我这边测试是可以的,检查下其他代码,可能是其他代码影响导致的,最好新建个html进行测试。

第二个paste事件能获取到粘贴过来的文本,就拿你写得代码来说

  window.addEventListener('paste', function (e) {
    for (let i = 0, len = e.clipboardData.items.length; i < len; i++) {
      const item = e.clipboardData.items[i]
      if (item.kind === 'file') {
        const pasteFile = item.getAsFile()
        console.log(pasteFile, '-------')
      } else {
        item.getAsString((s) => {
          console.log('item:', item, 'value: ', s)
        })
      }
    }
  })

从网页粘贴过来就能看到html代码也被粘贴过来了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏