Chrome 在Firefox中使用粘贴JavaScript侦听器复制并粘贴文件不起作用

3wabscal  于 2023-08-01  发布在  Go
关注(0)|答案(1)|浏览(140)

我想知道为什么在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兼容吗?

5t7ly7z5

5t7ly7z51#

我发现这种行为在Windows和Linux上都存在。在macOS上,我可以从Firefox中的clipboardData对象中获取文件,没有任何麻烦。这很奇怪,我没有发现为什么这是如此内部的文档从MDN。
但是如果你的文件是一个图片,并且你试图将它粘贴到contenteditable<div>中,Firefox将尝试在粘贴事件后插入<img>标签。
因此,对于图像,您可以尝试侦听<div>内部的更改,并使用src属性的base64源代码。
https://jsbin.com/qacicaj/6/edit?html,js,console,output

相关问题