【问题标题】:Read file from clipboard outside the paste event in a browser从浏览器中粘贴事件之外的剪贴板读取文件
【发布时间】:2021-02-07 05:40:14
【问题描述】:

我想知道用户剪贴板数据上是否有文件。

当我像这里这样捕获粘贴事件时,这是可能的:

document.addEventListener('paste', (event) => {
  const data = event.clipboardData;
  const file = data && data.files && data.files[0];
  if (file) {
      // do something with the file.
  }
  
});

但是,这需要用户将其粘贴到页面上。 我想在不执行任何操作的情况下实现它,类似于从剪贴板中捕获文本:

setInterval(()=>{
    const text = await navigator.clipboard.readText();
    if (text){
       // do something....
    }
},1000)

我可以随时运行此代码,并“找出”用户的剪贴板上是否有任何文本。

问题是我无法访问这样的文件。如果剪贴板上有文件,我会得到一个空字符串。

我知道这可能是一个安全问题,但至少我想知道他们的剪贴板上是否有任何文件(而不是文本)

【问题讨论】:

    标签: javascript google-chrome firefox browser safari


    【解决方案1】:

    使用clipboard.read 方法代替readText。它适用于任何类型的数据。

    https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/read

    【讨论】:

      猜你喜欢
      • 2015-06-25
      • 2011-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多