clipboard.js移动端无法实现复制

clipboard.js简介:实现了纯 JavaScript (无 Flash)的浏览器内容复制到系统剪贴板的功能。

在项目中使用clipboard.js插件去实现点击按钮,复制文字到剪切板的功能。同样的代码,在PC可以实现正常复制但是在移动端却失效

主要是因为移动端项目为了防止用户长按文本实现复制,一般在重置reset.css里面都会设置

div, p, a, ul, li, ol, h1, h2, h3, h4, h5, h6, span {
    -webkit-user-select: none;
    -webkit-touch-callout: none;
}

所以为了使需要被复制的文本所在的div能够选中,可以设置css属性user-select:auto,不过,这样做的缺点是,用户长按该区域也能实现复制。

还有一种解决方式就是通过js去获取需要复制的内容在,这种写法也是官方文档提供的,为了使我们可以动态的设置用户剪贴板的内容 https://clipboardjs.com/

this.clip = new ClipboardJS('.copy-btn', {
    text: () => myInvitedCode ? myInvitedCode : ''  //设置text的值,即为需要复制到用户剪贴板的内容
});

对应的HTML:

<div className="invite-code">
    {
        myInvitedCode ? myInvitedCode : ''
    }
</div>
<button className="copy-btn" data-clipboard-target=".invite-code">{UPEX.lang.template('复制')}</button>

还有需要注意的是,用户点击的部分需要用button标签,我一开始用的div,浏览器调试的时候可以点击,但是在手机上调试时不能实现复制

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值