clipboard.js是一款轻量级的实现复制文本到剪贴板功能的JavaScript插件。通过该插件可以将输入框,文本域,DIV元素中的文本等文本内容复制到剪贴板中

官方地址:https://clipboardjs.com/
Github地址:https://github.com/zenorocha/clipboard.js/

适用方法

1.引入js文件

<script src="dist/clipboard.min.js"></script>

2.基本使用

首先需要您需要通过传递DOM选择器,HTML元素或HTML元素列表来实例化它。

new Clipboard('.btn');

用一个元素当触发器来复制另一个元素的文本,data-clipboard-target属性后需要跟属性选择器

<input id="foo" value="https://github.com/zenorocha/clipboard.js.git">
<button class="btn" data-clipboard-target="#foo"></button>

另外还有另外一个属性data-clipboard-action属性,以指定是要要么copy还是要cut操作。默认情况下是copy。cut操作只适用于<input><textarea>元素。

<textarea id="bar">Mussum ipsum cacilds...</textarea>
<button class="btn" data-clipboard-action="cut" data-clipboard-target="#bar">Cut to clipboard</button>

从属性中复制文本,不需要另一个元素当触发器,可以使用data-clipboard-text属性,在后面放上需要复制的文本

<button class="btn" data-clipboard-text="Just because you can doesn't mean you should — clipboard.js">Copy to clipboard</button>

3.其他说明

通过运行检查clipboard.js是否支持Clipboard.isSupported(),返回true则可以使用。
显示一些用户反馈或捕获在复制/剪切操作后选择的内容。操作,文本,触发元素

var clipboard = new Clipboard('.btn');
clipboard.on('success', function(e) {
    console.info('Action:', e.action);
    console.info('Text:', e.text);
    console.info('Trigger:', e.trigger);
    e.clearSelection();
});
clipboard.on('error', function(e) {
    console.error('Action:', e.action);
    console.error('Trigger:', e.trigger);
});

该插件使用的是事件委托的方式来触发,所以大大减少了对dom的操作。

4.高级使用

如果你不想修改你的HTML,那么你可以使用一个非常方便的命令API。所有你需要做的是声明一个函数,写下你想要的操作,并返回一个值。下面是一个对不同id的触发器返回不同的值的例子

<body>
<input id="foo" value="https://github.com/zenorocha/clipboard.js.git">
<button id='foo_1' class="btn" data-clipboard-target="#foo"></button>
</body>
<script>
new Clipboard('.btn', {
    text: function(trigger) {
        if(trigger.getAttribute('id')=='foo_1'){
            return 1;
        }else{
            return 2;
        }
    }
});
</script>

5.支持的浏览器

Chrome 42+,Edge 12+,Firefox 41+,IE 9+,Opera 29+,Safari 10+


时尚大肠脸
96 声望1 粉丝