前端实现复制功能

前端实现复制功能

方法一

<input id="webUrl" value="https://online.hbisco.cn" />
const oUrl: any = document.getElementById(webUrl)
oUrl.select()
document.execCommand('Copy')

select() 方法用于选取文本域中的内容。即将废弃

总结:此方法可实现复制功能,不过select() 方法即将废弃,不推荐使用。

方法二

Clipboard

不是Clipboard通过实例化创建对象,而是通过Navigator.clipboard全局访问系统剪贴板。
使用 clipboard 的 writeText 方法实现复制

const oUrl: any = document.getElementById(id)
const value = oUrl.value
const clipboardObj = navigator.clipboard
await clipboardObj.writeText(value)

使用 clipboard 的 write 方法实现复制

const oUrl: any = document.getElementById(id)
const value = oUrl.value
const clipboardObj = navigator.clipboard
const type = "text/plain"
const blob = new Blob([value], { type });
const data = [new ClipboardItem({ [type]: blob })]
await clipboardObj.write(data)

clipboard 拥有的方法:

read : 读取剪切板的内容;
readText: 读取剪切板文字内容;
write: 向剪切板中写入文字内容;
writeText: 向剪切板中写入内容;

从剪切板中拿到的数据

例子: 一个图片
例子:一个图片
例子: 文字
在这里插入图片描述
总结: 推荐使用。大多数浏览器支持。

浏览器兼容性:
在这里插入图片描述
为了解决少部分浏览器及低版本浏览器不支持问题,可将方法一二结合,如下:

const oUrl: any = document.getElementById('example')
const clipboardObj = navigator.clipboard
 if (clipboardObj) {
     await clipboardObj.writeText(this.portalUrl)
 } else {
     oUrl.select()
     document.execCommand('Copy')
 }
  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值