1分钟学会 2 个复制文本到剪贴板的方法

本文介绍了如何使用JavaScript复制文本到剪贴板的两种方法,包括传统方式(通过创建textarea并选中内容)和使用navigator.clipboard API的新方法。还讨论了如何结合两者以实现浏览器兼容。

401cbbd75c5cbd8a8bdf8294fb7e7962.png

虽然用户自己可以选择文本进行内容的复制到剪贴板,但是有一些场景,我们需要通过一个按钮事件进行当前文本区域内容的复制,这个场景在日常中的需求还是比较常见的,你会怎么做呢?

一、大多人都在用的方法

你可能在用这个方法进行剪贴板的复制

  • 创建一个文本框区域 textarea

  • 然后将你希望复制的内容填充此文本框

  • 接下来将文本框添加至页面

  • 然后使用 select 方法进行文本框内容的选择

  • 然后执行 copy 命令

  • 最后移除 textarea 文本框

基于以上说明,示例代码如下:

function copyToClipboard(text){
    const textArea = document.createElement("textarea")
    textArea.value = text

    document.body.appendChild(textArea)

    textArea.focus()
    textArea.select()

    document.execCommand('copy')

    document.body.removeChild(textArea)
}

二、你可能不知道的新方法

你可以使用浏览器的新API——navigator.clipboard,一段代码就能实现简单的内容复制

function copyToClipboard(text){
    navigator.clipboard.writeText(text)
}

三、将两个方法整合一起

现在我们可以将新旧方法合在一起,避免新方法在旧的浏览器不能使用,我们需要进行浏览器兼容的适配,示例代码如下:

function copyToClipboard(text){
    if(navigator.clipboard){
        navigator.clipboard.writeText(text)
        return //codes below wont be executed
    }
    const textArea = document.createElement("textarea")
    textArea.value = text

    document.body.appendChild(textArea)

    textArea.focus()
    textArea.select()

    document.execCommand('copy')

    document.body.removeChild(textArea)
}

今天的文章就分享到这里,感谢你的阅读。

来源 

网址:https://dev.to/0shuvo0/copy-text-to-clipboard-in-jstwo-ways-1pn1

作者:Shuvo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值