2016-04-15 19 views
4

So hier ist mein Code, wenn der Benutzer Klick auf diesen ButtonText aus einem div zu Zwischenablage kopieren

<button id="button1">Click to copy</button> 

Der Text innerhalb dieser Div zu kopieren. Wie kann ich das machen??? Es tut uns Leid für mein schlechtes Englisch

<div id="div1">Text To Copy</div> 
+0

Von A Div Nicht Textarea – Alex

+0

Lösung mit JS, siehe http://jsfiddle.net/jdhenckel/km7prgv4/3 –

+0

https://stackoverflow.com/a/38672314/1568658 Dies funktioniert gut –

Antwort

25

Beide werden Werke wie ein Zauber :),

  1. javascript:

    function CopyToClipboard(containerid) { 
    if (document.selection) { 
        var range = document.body.createTextRange(); 
        range.moveToElementText(document.getElementById(containerid)); 
        range.select().createTextRange(); 
        document.execCommand("copy"); 
    
    } else if (window.getSelection) { 
        var range = document.createRange(); 
        range.selectNode(document.getElementById(containerid)); 
        window.getSelection().addRange(range); 
        document.execCommand("copy"); 
        alert("text copied") 
    }} 
    

Auch in html,

<button id="button1" onclick="CopyToClipboard('div1')">Click to copy</button> 

<div id="div1" >Text To Copy </div> 

<textarea placeholder="Press ctrl+v to Paste the copied text" rows="5" cols="20"></textarea> 
  1. JQUERY:

https://paulund.co.uk/jquery-copy-clipboard

+3

einfach hinzufügen zu dieser Antwort gibt es ein ordentliches Plugin, das ich ein paar Mal verwendet habe, das damit umgehen kann: https://clipboardjs.com/ –

+4

1. One funktioniert nicht – Alex

+1

Bitte sagen Sie mir, wie das erste Beispiel funktionieren würde – Alex

2

Ich habe versucht, die Lösung oben vorgeschlagen. Aber es war nicht Cross-Browser genug. Ich brauchte wirklich ie11 um zu arbeiten. zu Nach dem Versuch bekam ich:

<html> 
<body> 
    <div id="a" onclick="copyDivToClipboard()"> Click to copy </div> 
</body> 
<script> 
    function copyDivToClipboard() { 
     var range = window.getSelection().getRangeAt(0); 
     range.selectNode(document.getElementById("a")); 
     window.getSelection().addRange(range); 
     document.execCommand("copy") 
    } 
</script> 

mit Firefox getestet 57, Chrome 63, Opera 49, IE11 und nur Kante nicht funktionierte.

0

Hinzufügen des Links als Antwort, um mehr Aufmerksamkeit auf Aaron Lavers 'Kommentar unterhalb der ersten Antwort zu lenken.

Dies funktioniert wie ein Charme - http://clipboardjs.com. Fügen Sie einfach die Datei "clipboard.js" oder "min" hinzu. Verwenden Sie beim Initiieren die Klasse, auf die die HTML-Komponente geklickt werden soll, und übergeben Sie einfach die ID der Komponente mit dem zu kopierenden Inhalt an das Klickelement. nur

Verwandte Themen