由于业务需要,移动端网页项目需要提供一个一键复制快递单号到剪贴板的功能,在网上搜索到的方法大概有createTextRange()、 createRange()、setSelectionRange()等,可能是我测试的姿势不对,全都无法达到效果。
js也无法直接对剪贴板写入数据,只能将input里面的数据存入剪贴板,因此我最后选择了如下代码来实现这个功能:
/*创建一个Input元素用来存放需要复制的数据*/
var tag = document.createElement('input');
tag.setAttribute('id', 'copy_input');
/*设置需要复制的内容*/
tag.value = "test";
document.getElementsByTagName('body')[0].appendChild(tag);
document.getElementById('copy_input').select();
/*复制到剪贴板*/
document.execCommand('copy');
/*完成复制,移除元素*/
document.getElementById('copy_input').remove();
其他方法可以参考这篇博客:JavaScript 实现复制到剪贴板的总结