【JS篇】通过点击或其他操作进行复制(链接,文字等)

大家都知道微信公众号和小程序中都有限制访问外部链接的情况,如果项目中的外部链接是可知且少量的,可以通过微信公众平台中管理项目白名单,这里不再赘述。但当项目中有大量不确定的外部链接且又想要让用户能够访问时,就需要给用户提供方便快捷的复制链接的功能。

找了好几种方法,尝试后发现有些方法不生效,最后终于找到最完整的方法,来源找不到了,见谅~
代码整理后如下(Toast提示是用了antd mobile的组件):

const onCopyURL = (url, name) => {
    if (window.clipboardData) {
      window.clipboardData.clearData();
      window.clipboardData.setData('text', url);
      Toast.show({
        content: `【${name}】链接已复制,请用浏览器打开查看`,
        duration: 5000
      });
    } else if (document.execCommand) { // for modern browser
      const element = document.createElement('span');
      element.textContent = url;
      document.body.appendChild(element);
      if (document.selection) {
        const range = document.body.createTextRange();
        range.moveToElementText(element);
        range.select();
      } else if (window.getSelection) {
        const range = document.createRange();
        range.selectNode(element);
        window.getSelection().removeAllRanges();
        window.getSelection().addRange(range);
      }
      document.execCommand('copy');
      element.remove ? element.remove() : element.removeNode(true);
      Toast.show({
        content: `【${name}】链接已复制,请用浏览器打开查看`,
        duration: 5000
      });
    }
  }

其中的execCommand方法常用功能大致列一下,感觉还是挺好用的,转载自这里

  1. 【全选】将选种网页中的全部内容:document.execCommand(“selectAll”)
  2. 【打开】相当于单击文件中的打开按钮:document.execCommand(“open”)
  3. 【另存为】将该网页保存到本地盘的其它目录:document.execCommand(“saveAs”)
  4. 【打印】前提是装了打印机:document.execCommand(“print”)
  5. 【剪贴】剪贴选中的文字到剪贴板:document.execCommand(“Cut”,“false”,null);
  6. 【删除选中】删除选中的文字:document.execCommand(“Delete”,“false”,null);
  7. 【复制】复制选中的文字到剪贴板:document.execCommand(“Copy”,“false”,null);
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

章魚尐芄子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值