2016-05-16 8 views
1

Wenn ich document.execCommand ('copy') verwende, fügt chrome einen Wagenrücklauf am Ende des kopierten Textes hinzu (was eigentlich nicht in der HTLM ist, während IE nicht (korrekte Verhalten). Mache ich etwas falsch?chrome fügt Wagenrücklauf mit execCommand ('copy') hinzu

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'); 

}

Antwort

0

Das Problem liegt nicht in der Ausführung des Kopierbefehl "document.execCommand ('Kopie')", das funktioniert gut Die Bereichsauswahl ist das Problem

Ich stieß auf die gleiche p Problem und ich löste es mit: element.SELECT(). Zum Beispiel:

Erstellen Sie ein Textfeld und legen Sie es aus dem Bildschirm (Verstecken wird nicht funktionieren). Setzen Sie den Wert und wählen Sie das komplette Textfeld.

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');