最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • copy-to-clipboard -- JS原生实现文本复制

    正文概述 掘金(SundayA)   2021-01-27   749

    解决了什么问题

    复制文本内容到剪贴板,并消息提示

    使用示例

    import copy from 'copy-to-clipboard';
    
    copy('Text');
    
    // Copy with options
    copy('Text', {
      debug: true,
      message: 'Press #{key} to copy',
    });
    

    提供了哪些功能/方法/函数等?

    • 提供了一个对外函数copy,可以通过它来实现文本的复制;

    关注列表

    复制功能

    JS的复制命令 document.execCommand('copy'): 将选中的内容复制到剪贴板中

    思路分析

    1. 传入选中内容text;
    copy(text, options)
    
    1. 新建span元素, 赋值为传入的选中文本text;
     mark = document.createElement("span");
     mark.textContent = text;
    
    1. 将span添加到文档中
      document.body.appendChild(mark);
    
    1. 监听文本复制过程
      var successful = document.execCommand("copy");
    
    1. document.execCommand('copy')复制内容
       mark.addEventListener("copy", function(e) {
          e.stopPropagation();
          if (options.format) {
            e.preventDefault();
            if (typeof e.clipboardData === "undefined") { // IE 11
              debug && console.warn("unable to use e.clipboardData");
              debug && console.warn("trying IE specific stuff");
              window.clipboardData.clearData();
              var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting["default"]
              window.clipboardData.setData(format, text);
            } else { // all other browsers
              e.clipboardData.clearData();
              e.clipboardData.setData(options.format, text);
            }
          }
          if (options.onCopy) {
            e.preventDefault();
            options.onCopy(e.clipboardData);
          }
        });
    
    1. 从文档中溢出DOM元素;
     if (mark) {
       document.body.removeChild(mark);
     }
    
    1. copy函数返回 复制是否成功的结果
     if (!successful) {
          throw new Error("copy command was unsuccessful");
     }
     success = true;
     ...
     return sucess;
    

    React进阶

    React实现文本复制

    • 这个是以上面copy-to-clipboard为基础、应用到react

      import copy from 'copy-to-clipboard';
      

    起源地下载网 » copy-to-clipboard -- JS原生实现文本复制

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元