获取当前剪贴板内容?[已关闭]

2022-08-30 04:09:09

我想知道一种方法,让我的脚本检测剪贴板的内容,并在打开页面时将其粘贴到文本字段中,而无需用户输入。如何做到这一点?


答案 1

通过 使用新的剪贴板 API。它可以这样使用:navigator.clipboard

使用异步/等待语法:

const text = await navigator.clipboard.readText();

或者使用 Promise 语法:

navigator.clipboard.readText()
  .then(text => {
    console.log('Pasted content: ', text);
  })
  .catch(err => {
    console.error('Failed to read clipboard contents: ', err);
  });

请记住,这将提示用户使用权限请求对话框,因此不可能进行有趣的业务。

如果从控制台调用,则上述代码将不起作用。仅当在活动选项卡中运行代码时,它才有效。要从控制台运行代码,您可以设置超时,然后在网站窗口中快速单击:

setTimeout(async () => {
  const text = await navigator.clipboard.readText();
  console.log(text);
}, 2000);

有关 API 和用法的更多信息,请参阅 Google 开发人员文档

规范


答案 2

window.clipboardData.getData('Text')将在某些浏览器中工作。但是,许多它确实工作的浏览器会提示用户是否希望网页可以访问剪贴板。