首页 > 解决方案 > HTML5 粘贴事件不包含多个文件

问题描述

我正在尝试处理粘贴事件并获取使用 Javascript 粘贴的文件,如下所示:

const pasteHandler = (e => {
  const { items: files } = e.clipboardData;
  console.log(files.length); // this maximally contains two elements on Chromium-based browsers.
                             // One of which is text, and the other one is a file.

  const parsedFiles = [];
  for( let i = 0; i < files.length; i++) {
    const file = files[i].getAsFile();
    if (file !== null)
      parsedFiles.push(file);
  }

  // do stuff with parsedFiles;
});

container.addEventListener('paste', pasteHandler);

// and later dispose the event handler
container.removeEventListener('paste', pasteHandler);

我期望.items包含我粘贴的所有文件,而不仅仅是一个可解析的文件。我在这里ClipboardEvent查看了的官方文档,它说这是一个实验性功能。我想知道我是否遗漏了什么或者是预期的?另外,在 Firefox 75 上,我根本无法拦截任何文件。

标签: javascripthtmlpaste

解决方案


推荐阅读