【问题标题】:Is it possible to paste from clipboard onclick in Javascript?是否可以在 Javascript 中从剪贴板 onclick 粘贴?
【发布时间】:2020-08-25 08:36:44
【问题描述】:

该用例用于在私有 Intranet 上输入数据:用户从 google docs、dropbox 文本文档等复制和粘贴,并且必须粘贴到具有许多输入的表单中。为了加快速度,如果用户可以从文档中复制和粘贴,那就太好了,当他们点击输入字段时,它会在他们左击时自动粘贴。

我看到过一些较早的问题,但似乎这是(并且有充分理由)存在安全风险。但是,私有 Intranet 上的所有用户都知道这一点,只是想节省时间。是否有任何浏览器或技术可以做到这一点?

此外,我们可以使用任何支持它的浏览器或环境。那么我怎样才能实现这个功能来节省时间呢?

【问题讨论】:

标签: javascript jquery


【解决方案1】:

剪贴板 API 包含在 Chrome 66 中。请在此处查看 jsfiddle:https://jsfiddle.net/zm490d6a/

相关代码为:

async function paste(input) {
  const text = await navigator.clipboard.readText();
  input.value = text;
}

如果您使用的是 Chrome 66 或更高版本,这将有效。但是,请注意,出于安全原因,您必须授予网页访问剪贴板的权限,因此当您第一次单击该页面上的输入时,它会弹出询问您访问剪贴板的权限。一旦您授予它访问权限,对输入的任何点击都会粘贴剪贴板上的任何内容。

这里我只是简单地使用 readText,但您也可以使用 readData 来处理剪贴板上的图像等。 https://developer.mozilla.org/en-US/docs/Web/API/Clipboard

【讨论】:

    【解决方案2】:

    试试

    el.addEventListener('click', (e) => { 
        document.execCommand('paste');
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-13
      • 2016-01-30
      • 2017-12-23
      相关资源
      最近更新 更多