Clipboard API:剪贴板读取和写入
Clipboard API 是一个 Web API,它可以让开发者通过 JavaScript 代码来读取或写入剪贴板中的内容。这个 API 包含两种操作:读取剪贴板内容和写入剪贴板内容。
读取剪贴板内容
读取剪贴板内容时,可以使用 navigator.clipboard.readText()
方法来获取剪贴板中的文本内容。这个方法返回一个 Promise 对象,可以使用 then()
方法来处理获取到的文本内容,也可以使用 catch()
方法来处理获取内容的失败情况。
下面是一个读取剪贴板内容的示例代码:
navigator.clipboard
.readText()
.then((text) => console.log('获取到的文本内容是:', text))
.catch((err) => console.error('读取剪贴板内容失败:', err));
值得注意的是,读取剪贴板内容的操作需要用户授权。在用户同意授权之前,调用 navigator.clipboard.readText()
方法会抛出 SecurityError 异常。因此,我们可以在用户点击按钮之类的事件触发读取剪贴板操作,以获取用户授权。
写入剪贴板内容
写入剪贴板内容时,可以使用 navigator.clipboard.writeText(text)
方法来将指定的文本内容写入剪贴板中。这个方法也返回一个 Promise 对象,可以使用 then()
方法来处理写入操作成功的情况,也可以使用 catch()
方法来处理写入操作失败的情况。
下面是一个写入剪贴板内容的示例代码:
const text = '这是要复制到剪贴板的文本内容';
navigator.clipboard
.writeText(text)
.then(() => console.log('文本内容已成功写入剪贴板'))
.catch((err) => console.error('写入剪贴板失败:', err));
值得注意的是,写入剪贴板内容的操作也需要用户授权。在用户同意授权之前,调用 navigator.clipboard.writeText(text)
方法会抛出 SecurityError 异常。同样地,我们可以在用户点击按钮之类的事件触发写入剪贴板操作,以获取用户授权。
另外,Clipboard API 目前只支持在安全上下文(例如 HTTPS 网站、本地文件、localhost 等)下使用,否则会抛出安全错误。
总结
Clipboard API 是一个非常有用的 Web API,它可以让开发者通过 JavaScript 代码来读取或写入剪贴板中的内容。通过剪贴板 API,我们可以方便地实现一些常见的功能,例如复制文本内容、复制图片等等。不过,需要注意的是,剪贴板 API 的浏览器兼容性还比较有限,而且在使用过程中需要用户授权,因此我们需要在实际开发中进行适当的兼容性处理和用户提示。