前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用异步剪切板 AsyncClipboard API

如何使用异步剪切板 AsyncClipboard API

作者头像
JS菌
发布2019-04-10 10:17:41
1.5K0
发布2019-04-10 10:17:41
举报
文章被收录于专栏:JS菌JS菌

如何使用异步剪切板 AsyncClipboard API

⭐️ 更多前端技术和知识点,搜索订阅号 JS 菌 订阅

长时间我们一直在使用 document.execCommand 来与剪切板做交互,尤其是基本上都在使用 clipboard.js 这个库,其基本原理也是插入 DOM 树中一个隐藏的 textarea 元素,然后将要复制的文本写入到 textarea 元素中,最后调用 textarea 的 select 方法和 document.execCommand('copy') 方法,然后删除 textarea 元素

虽说 execCommand 能够一定程度上解决浏览器兼容问题:

即便是使用一个简单的剪切板都这么费劲需要一个第三方库,而且剪切板的这种方法是同步的。同步方法交互剪切板的阻塞、有限的访问权限、跨浏览器体验不一致、对多种数据类型的支持有限等问题解决起来也是麻烦。

这里有篇文章讲述到底该如何用 JS 操作剪切板:https://www.lucidchart.com/techblog/2014/12/02/definitive-guide-copying-pasting-javascript/

? 无论如何,异步剪切板 Async Clipboard API 这个 API 在 Chrome 66 版本以上得到了支持:

我们可以在新版本中使用这个异步版本的剪切板,那么具体该如何使用这个 API 呢

权限

使用这个 API 当然是需要获取权限的,我们可以使用 PaymentRequest 这个 API 来监听是否拥有这个权限:

对应的有两个 query 查询条件:

代码语言:javascript
复制
{ name: 'clipboard-read' }
{ name: 'clipboard-write' }

读取剪切板

调用 clipboard 对象下的 readText 方法即可 ?

代码语言:javascript
复制
navigator.clipboard.readText().then(console.log)

写入剪切板

代码语言:javascript
复制
navigator.clipboard.writeText(+new Date())

上面的代码每次刷新页面都会写入最新时间戳

另外还有 read 和 write 方法,但浏览器没有实现,可以读取或写入其他类型格式的数据

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JS菌 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何使用异步剪切板 AsyncClipboard API
    • 权限
      • 读取剪切板
        • 写入剪切板
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档