//html
在iOS Safari中,剪贴板API有一些限制(实际上是安全措施):
于安全原因,iOS Safari只允许容器中的document.execCommand('copy')文本contentEditable。
解决方法是检测iOS Safari,并contentEditable在执行之前快速切换document.execCommand('copy')。
它copy仅在有效的选择上触发事件,cut并且paste仅在专注的可编辑字段中触发事件。
它只支持操作系统剪贴板读/写通过快捷键,而不是通过document.execCommand()。
<div id="bar" contentEditable="false">文本文本</div> <button id="copybtn" class="copycode">点击复制</button>
$('#copybtn').click(function () {
var el = document.querySelector('#bar');
var range = document.createRange();
range.selectNodeContents(el);
var selection = window.getSelection();
selection.removeAllRanges();
selection.addRange(range);
document.execCommand('copy');
alert("复制成功")
});
function get_ios8() {
// 判断是否 iPhone 或者 iPod
if ((navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i))) {
// 判断系统版本号是否大于3小于8
var version8 = Boolean(navigator.userAgent.match(/OS [3-8]_d[_d]* like Mac OS X/i));
if (version8) {
$('#copybtn').remove();
}
} else {
return false;
}
}
get_ios8();
ios8以下的系统,依然不支持 document.execCommand('copy');
安卓系统下没问题;