我想知道用户剪贴板数据上是否有文件。
当我像这里一样捕获粘贴事件时,这是可能的:
document.addEventListener('paste', (event) => {
const data = event.clipboardData;
const file = data && data.files && data.files[0];
if (file) {
// do something with the file.
}
});
但是,这需要用户将其粘贴到页面上。我想在没有他们做任何 Action 的情况下实现它,类似于从剪贴板捕获文本:
setInterval(()=>{
const text = await navigator.clipboard.readText();
if (text){
// do something....
}
},1000)
我可以随时运行此代码,并“找出”用户的剪贴板上是否有任何文本。问题是我无法访问这样的文件。如果剪贴板上有文件,我会得到一个空字符串。
我知道这可能是一个安全问题,但至少我想知道他们的剪贴板上是否有任何文件(而不是文本)
最佳答案
使用 clipboard.read
方法而不是 readText
.它适用于任何类型的数据。
https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/read
关于javascript - 从浏览器中粘贴事件之外的剪贴板读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64512158/