这是一个相当晚的响应,但对于那些将来搜索并且在实现 execCommand('copy') 事件以适用于桌面和移动设备时遇到问题的人。
跨浏览器,移动友好,无需外部资源或程序
function CopyString(){
var StringToCopyElement = document.getElementById('YourId');
StringToCopyElement.select();
if(document.execCommand('copy')){
StringToCopyElement.blur();
}else{
CopyStringMobile();
}
}
function CopyStringMobile(){
document.getElementById("YourId").selectionStart = 0;
document.getElementById("YourId").selectionEnd = 999;
document.execCommand('copy');
if (window.getSelection) {
if (window.getSelection().empty) { // Chrome
window.getSelection().empty();
} else if (window.getSelection().removeAllRanges) { // Firefox
window.getSelection().removeAllRanges();
}
} else if (document.selection) { // IE?
document.selection.empty();
}
}
将 CopyString() 函数设置为您要触发事件的任何对象的点击事件。这可用于移动和桌面操作系统。
解释
您需要有两种不同的方法来选择要复制的字符串,因为截至今天,通过桌面进行复制的方法不适用于移动设备。我有一个 if then 函数来捕获桌面方法是否有效,如果无效,则触发适用于移动设备的代码。此方法不需要下载或链接。这两种方法都会突出显示您要复制的文本,然后将复制命令触发到剪贴板,然后取消选择您要复制的字符串。您可以根据自己的喜好混合代码,但这是这样做的方式。