码迷,mamicode.com
首页 > 其他好文 > 详细

copyToClipboard - 复制到剪贴板advanced

时间:2018-01-18 17:59:41      阅读:459      评论:0      收藏:0      [点我收藏+]

标签:删除   doc   结果   app   sel   als   cte   rem   剪贴板   

将一个字符串复制到剪贴板。 仅作为用户操作的结果(即,在 click 事件侦听器中)。

创建一个新的 <textarea> 元素,用提供的数据填充它,并将其添加到 HTML 文档中。 使用 Selection.getRangeAt() 来存储选择的范围(如果有的话)。 使用 document.execCommand(‘copy‘) 复制到剪贴板。 从HTML文档中删除 <textarea> 元素。 最后,使用 Selection().addRange() 来恢复原始选择范围(如果有的话)。

const copyToClipboard = str => {
  const el = document.createElement(‘textarea‘);
  el.value = str;
  el.setAttribute(‘readonly‘, ‘‘);
  el.style.position = ‘absolute‘;
  el.style.left = ‘-9999px‘;
  document.body.appendChild(el);
  const selected =
    document.getSelection().rangeCount > 0 ? document.getSelection().getRangeAt(0) : false;
  el.select();
  document.execCommand(‘copy‘);
  document.body.removeChild(el);
  if (selected) {
    document.getSelection().removeAllRanges();
    document.getSelection().addRange(selected);
  }
};

copyToClipboard(‘Lorem ipsum‘); // ‘Lorem ipsum‘ copied to clipboard.

copyToClipboard - 复制到剪贴板advanced

标签:删除   doc   结果   app   sel   als   cte   rem   剪贴板   

原文地址:https://www.cnblogs.com/bali123/p/8311480.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!