以下代码可以实现 , 传入文本即可,兼容 安卓 和 IOS ;
原理是 :先添加节点 ,然后选择对象,执行复制,而 ios 要先执行选中操作 再复制,复制完后要移除选中 ,然后删除节点
function copyText(text){
var Url2 = text || '没复制上';
if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) {//区分iPhone设备
var span = document.createElement('span');
span.innerHTML = Url2;
//span.style.display='none';
span.id='copyTextSpan';
document.body.appendChild(span);
window.getSelection().removeAllRanges();//这段代码必须放在前面否则无效
var range = document.createRange();
// 选中需要复制的节点
range.selectNode(span);
// 执行选中元素
window.getSelection().addRange(range);
// 执行 copy 操作
var successful = document.execCommand('copy');
// 移除选中的元素
window.getSelection().removeAllRanges();
span.parentNode.removeChild(span);
this.msg('复制成功');
}else{
var oInput = document.createElement('input');
oInput.value = Url2;
document.body.appendChild(oInput);
oInput.select(); // 选择对象
document.execCommand("Copy"); // 执行浏览器复制命令
oInput.className = 'oInput';
oInput.style.display='none';
oInput.parentNode.removeChild(oInput);
this.msg('复制成功');
}
}