我想知道为什么在Firefox上使用JavaScript事件侦听器将图像文件从计算机复制并粘贴到浏览器中不起作用?但是,当我在chrome和edge上试用时,它工作得很完美。
<script>
document.addEventListener('paste', (event) => {
// event.preventDefault();
console.log('event.items',event.clipboardData.items[0].getAsFile())
});
</script>
字符串
请看上面的代码,在Chrome和Edge上,我得到了file数据,但在Firefox中,它是undefined
firefox:x1c 0d1x的数据
chrome:
Try on Code pen here
非常感谢,如果有人能找出原因!或者有什么替代品可以与firefox兼容吗?
1条答案
按热度按时间5t7ly7z51#
我发现这种行为在Windows和Linux上都存在。在macOS上,我可以从Firefox中的
clipboardData
对象中获取文件,没有任何麻烦。这很奇怪,我没有发现为什么这是如此内部的文档从MDN。但是如果你的文件是一个图片,并且你试图将它粘贴到
contenteditable
<div>
中,Firefox将尝试在粘贴事件后插入<img>
标签。因此,对于图像,您可以尝试侦听
<div>
内部的更改,并使用src
属性的base64源代码。https://jsbin.com/qacicaj/6/edit?html,js,console,output