2016-05-16 65 views
1

當我使用document.execCommand('複製'),chrome添加回車在複製文本的結尾(實際上不在HTLM,而IE不(正確的行爲)。 難道我做錯了什麼?鉻添加回車使用execCommand('複製')

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

問題不在於複製命令的執行中,「document.execCommand(‘複製’)」,這工作正常。範圍選擇是問題

我遇到了同樣的問題roblem和我解決它通過使用: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');