• clipboard.js实现文本复制


    用clipboard.js实现文本复制

    HTML

      render() {
        return (
          <div>
            {/* 这边是要被复制的内容 */}
            <div ref={(el) => this.code = el}>{data.code}</div>
            {/* 复制按钮 */}
            <button
              ref={el => (this.copyBtn = el)}
              className="button-defaul"
            >
              复制
            </button>
          </div>
        );
      }

    JS

      componentDidMount(){
        // 引入clipboard,并且初始化实例
        require(['clipboard'], Clipboard => {
          this.cellClipboard = new Clipboard(this.copyBtn, {
            text: this.getCellClipboardValue // 返回的复制的值
          });
        });
      }
    
      /**
       * 复制方法
       * @memberof App
       * @return   string  返回要复制的内容(这边演示的是文本是string类型)
       */
      getCellClipboardValue = () => {
        const codeDom = this.code;
        const cellValue = codeDom.innerHTML;
        if (!cellValue) {
          alert('没有可复制的内容');
          return '';
        }
        alert(`已复制到剪切板  ${cellValue}`);
        return cellValue;
      }

    清除绑定事件:

      componentWillUnmount() {
        this.cellClipboard.destroy(); // 事件清理
      }

    备注:我暂时只试了下文本的,图片的话,我用下面的代码试了下:

    <div id="draw-img">
       <img src="//cdn2.jianshu.io/assets/web/web-note-ad-1-c2e1746859dbf03abe49248893c9bea4.png" alt="//cdn2.jianshu.io/assets/web/web-note-ad-1-c2e1746859dbf03abe49248893c9bea4.png"/>
    </div>
    require(['clipboard'], Clipboard => {
       this.cellClipboard = new Clipboard(this.copyBtn, {
        target: () => document.querySelector('#draw-img')
       });
    });

    然后这样我点击复制的话,只能复制img的alt属性的值。

  • 相关阅读:
    java八大数据类型
    变量,常量,作用域
    位运算符
    可变参数
    重写
    javascript中各种循环总结
    前端高效emmit快捷键
    移动端列表页布局
    sublime text3中添加插件CSScomb方法
    友元类头文件互相包含问题
  • 原文地址:https://www.cnblogs.com/yxfboke/p/10868286.html
Copyright © 2020-2023  润新知