js 复制文本带样式

一键复制带样式的html文本到邮件

<div>
	<div id='copy-content'>
    	 <div style={{ fontSize: '16px',fontWeight: 500, lineHeight: '24px', color: '#222', marginBottom: '16px' }}>邀请您参加腾讯会议网络研讨会(Webinar)</div>
    </div>
	<Button onClick={handleCopy}>Copy</Button>
</div>
  1. 不带样式的纯文本
const handleCopy = () => {
    // 获取目标元素的innerHTML
    let innerHtml = document.getElementById('copy-content').innerHTML || ''
    // 处理innerHTML,使用转义符代替<br>标签
    const html = innerHtml.replace(/<br>/g, '\n').replace(/<[^>]*>/g, '');

    // 这是比较新的API,是一个异步方法
    navigator.clipboard.writeText(html).then(() => {
      // 按需处理想要的callback
      message.success('复制成功');
    });
  }
  1. html文本
const handleCopy = () => {
    // 获取目标元素的innerHTML
    let innerHtml = document.getElementById('copy-content').innerHTML || ''
    // 处理innerHTML,使用转义符代替<br>标签
    const html = innerHtml.replace(/<br>/g, '\n');

    // 这是比较新的API,是一个异步方法
    navigator.clipboard.writeText(html).then(() => {
      // 按需处理想要的callback
      message.success('复制成功');
    });
  }
  1. 带样式的纯文本
  const handleCopy= () => {
    const range = document.createRange();
    const element = document.getElementById('copy-content'); // 要复制的元素
    range.selectNode(element);
    window.getSelection().removeAllRanges();
    window.getSelection().addRange(range);
    document.execCommand('copy');
    window.getSelection().removeAllRanges();
    message.success('复制成功');
  };
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值