zoukankan      html  css  js  c++  java
  • vue中使用clipboard.js复制分本

    依赖clipboard.js二次开发vue插件CopyText

    首先

    npm install clipboard --save-dev

    在项目中创建plugin文件夹和CopyText.js

     CopyText.js

    //拷贝插件 kay
    // import iView from 'iview';
    import Clipboard from 'clipboard';
    let CopyText = new Object();
    CopyText.install = function (Vue, options) {
        console.log(Vue, '拷贝')
        // 4. 添加实例方法
        // text,    要copy的文本
        // success, 成功回调函数
        // error    失败回调函数
        Vue.prototype.$CopyText = function (text, success, error) {
            // 逻辑...
            let oCopyBtn = document.createElement('button');
            oCopyBtn.setAttribute('id', 'copy-btn');
            oCopyBtn.setAttribute('data-clipboard-text', text);
            document.body.appendChild(oCopyBtn);
            var clipboard = new Clipboard('#copy-btn');
            clipboard.on('success', e => {
                success(e);
                // console.log('复制成功');
                // iView.Message.success(`复制成功!`);
                // 释放内存
                clipboard.destroy();
                //移除节点
                document.body.removeChild(oCopyBtn);
            });
            clipboard.on('error', e => {
                error(e);
                // 不支持复制
                //console.log('该浏览器不支持自动复制')
                // iView.Message.error(`复制失败!`);
                // 释放内存
                clipboard.destroy();
                //移除节点
                document.body.removeChild(oCopyBtn);
            });
            //模拟点击
            oCopyBtn.click();
        }
    };
    
    export default CopyText;
    View Code

    在main.js中使用插件

    import CopyText from './plugin/CopyText';
    //...你的其它代码
    Vue.use(CopyText);

    使用方法

    在其他.vue文件中

          //复制 点击某个按钮 执行 this.$CopyText函数即可
         //示例代码
         handleCopy(params){
            this.$CopyText(要拷贝的文本, (e)=>{
                   //something to do 
                //this.$Message.success('复制成功!') //例:iview ui框架的提示
            }, (e)=>{
                    //something to do 
            //this.$Message.error('复制失败!')
            });
          },  

    希望可以帮到你!

  • 相关阅读:
    POJ 1936 All in All
    Blue Jeans POJ 3080 寻找多个串的最长相同子串
    Spell checker POJ 1035 字符串
    密码锁
    luogu P1083 借教室
    BZOJ 1588: [HNOI2002]营业额统计
    BZOJ 1433: [ZJOI2009]假期的宿舍
    luogu P1231 教辅的组成
    luogu P2756 飞行员配对方案问题
    luogu P3386 【模板】二分图匹配
  • 原文地址:https://www.cnblogs.com/taohuaya/p/12407898.html
Copyright © 2011-2022 走看看