我注意到在 Firefox (130.0.1)中Pasteevent.clipboardData
只能从剪贴板粘贴单个复制的文件,但 Chrome (129.0.6668.70)和 Edge 可以正常粘贴多个文件。
我找不到这是否是一个已知问题,而MDN Web Docs将此功能声明为“广泛可用的基线”。那么,这可能是一个错误、有意为之的行为还是其他?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<input type="text" placeholder="Paste/Ctrl+V files anywhere">
<p>Pasted files counter: <span id="counter">0</span></p>
<p id="files" style="white-space: pre-line;"></p>
</body>
<script>
document.addEventListener('paste', event => {
Array.from(event.clipboardData.files).map(file => {
document.querySelector('#counter').innerText = parseInt(document.querySelector('#counter').innerText) + 1;
document.querySelector('#files').innerHTML += `<b>File ${document.querySelector('#counter').innerText}:</b> ${file.name} <i>(${file.type})</i>\n`;
});
})
</script>
</html>
这是 Firefox 的一个旧错误,并非故意的。Bugzilla 中的链接:clipboardData 仅支持粘贴一个文件。
它仍然开放。点击它以获得更多关注。