当我使用document.execCommand('copy')时,chrome会在复制文本的末尾添加回车符(实际上不在HTLM中,而IE则不是(正确的行为))。 我做错了吗?
function copycode(){
var length=this.id.length;
var preid = this.id.substring(0,length-1);
var textnode=document.getElementById(preid);
textnode.setAttribute('contenteditable', 'true');
window.getSelection().removeAllRanges();
var range = document.createRange();
range.selectNode(textnode);
window.getSelection().addRange(range);
var succeed;
try {
succeed = document.execCommand("copy");
}
catch(e) {
succeed = false;
}
textnode.setAttribute('contenteditable', 'false');
}
答案 0 :(得分:0)
问题不在于执行复制命令“document.execCommand('copy')”,这很好用。范围选择是问题所在。
我遇到了同样的问题,我使用:element.SELECT()解决了它。例如:
创建一个textarea并将其放在屏幕外(隐藏不起作用)。设置值并选择完整的textarea。
var textarea = document.createElement( "textarea" );
textarea.style.height = "0px";
textarea.style.left = "-100px";
textarea.style.opacity = "0";
textarea.style.position = "fixed";
textarea.style.top = "-100px";
textarea.style.width = "0px";
document.body.appendChild( textarea );
textarea.value = textnode.innerHTML;
textarea.select();
document.execCommand('copy');