起初是使用浏览器提供了 copy 命令 。
document.execCommand("copy")
如果是输入框,可以通过 select() 方法,选中输入框的文本,然后调用 copy 命令,将文本复制到剪切板。但是 select() 方法只对 <input> 和 <textarea> 有效,对于 <p> 就不好用了
function copyUrl() {
$("#copyinput").select(); // 选择对象
document.execCommand("Copy"); // 执行浏览器复制命令
alert("已复制到剪贴板!");
}
但是#copyinput不能隐藏(display:none or visibility:hidden or type="hidden"),我想要的是点击一个按钮就能复制隐藏控件的值。所以找到了clipboard.js 优秀!
以下是clipboard.js 的使用方法。
HTML:
<input type="hidden" id="content" value="复制的内容"/>
<input type="button" id="copyUrl" value="请点击我复制"/>
JS:
var clipboard2 = new ClipboardJS('#copyUrl', {
text: function() {
return $("#content").val();
}
});
clipboard2.on('success', function(e) {
console.log("已复制到剪贴板!");
});
clipboard2.on('error', function (e) {
});
兼容以下浏览器版本
下载链接:https://github.com/zenorocha/clipboard.js