[Note] Clipboard.js 使用

clipboard.js是一个用来设置剪切板的库,小巧无依赖,但用法有点诡异,必须依赖一个DOM元素

据作者说,由于浏览器相关安全策略的缘故,无法使用下面这种方式来设置剪切板

clipboard.copy('text to copy');

必须要与一个DOM元素相关联,并且需要用户的点击操作才能实现功能(这样看来,浏览器还是挺安全的)

普通使用推荐下面这种用法,这里的text可以动态设置,可以写一个js函数动态返回text

var clipboard = new ClipboardJS('#btn', {
    text: function(trigger) {
        return trigger.getAttribute('aria-label');
        // return randomText();
    }
});


clipboard.on("success", function (e) {
    console.log("复制成功");
});

clipboard.on("error", function (e) {
    console.log("复制失败,请手动复制");
});

如果要在bootstrap的modal中使用,上面的代码会无法正常工作,需要在构造函数里多传入一个container,这个container就是这个模态框

For use in Bootstrap Modals or with any other library that changes the focus you'll want to set the focused element as the container value.

var clipboard = new ClipboardJS('#btn', {
    text: function(trigger) {
        return trigger.getAttribute('aria-label');
    },
    container: document.getElementById('dialog')
});

clipboard.on("success", function (e) {
    console.log("复制成功");
});

clipboard.on("error", function (e) {
    console.log("复制失败,请手动复制");
});

界面里没有button也是可以用的

<span id="wechat_account" data-clipboard-text="aaa">aaa</span>
jQuery(document).on('tap', '#wechat_account', function (evt) {
    var clipboard = new ClipboardJS("#wechat_account");
    clipboard.on("success", function (e) {
        mui.toast("微信号复制成功");
    });
    clipboard.on("error", function (e) {
        mui.toast("微信号复制失败,请手动输入微信号");
    });
    $('#wechat_account').trigger('click');
});

Reference

  1. https://clipboardjs.com/

转载于:https://www.cnblogs.com/arcsinw/p/10691531.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值