clipboard.js是一个用来设置剪切板的库,小巧无依赖,但用法有点诡异,必须依赖一个DOM元素javascript
据做者说,因为浏览器相关安全策略的缘故,没法使用下面这种方式来设置剪切板html
clipboard.copy('text to copy');
必需要与一个DOM元素相关联,而且须要用户的点击操做才能实现功能(这样看来,浏览器仍是挺安全的)java
普通使用推荐下面这种用法,这里的text能够动态设置,能够写一个js函数动态返回textbootstrap
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'); });