这是因为当发出copy命令时,上面创建的input节点很可能还未创建完毕(这是个异步过程),所以就失败了。如果你的目的是想把文本复制到剪贴板,建议用下面的代码,兼容大部分浏览器,而且无需创建Input节点,一切在静默中进行:
function copyToClipboard(s){if(window.clipboardData){
window.clipboardData.setData('text',s)
}else{
document.oncopy=function(e){
e.clipboardData.setData('text',s)
e.preventDefault()
document.oncopy=null
}
document.execCommand('Copy')
}
}
用法举例:
copyToClipboard('HIQrwy88iV')如果你只是想实现复制id为txt的div中的文本的话:$("#cpy").click(function(){//注册复制的点击事件
alert('复制成功!')//因为根本就不用复制功能只是一个从txt_div中取值的过程
})
$("#past").click(function(){
$("textarea").val($("#txt").text())
alert('粘贴成功!')
})
思路:你用textarea的select()选中,document.execCommand("Copy")执行复制到剪切板,实现:新建一个textarea,把要复制的字段,放到textarea中
function copy(ele){
var textarea = document.creatElement("textarea")
textarea.innerHTML = ele.innerHTML
textarea.select()
document.execCommand("Copy")
alert("成功了,请按Ctrl+v进行复制")
}