2016-04-15 106 views
4

所以這裏是我的代碼時,這個按鈕如何從一個div的文本複製到剪貼板

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

此DIV要複製的文本用戶點擊。我怎樣才能做到這一點???對不起我的英文不好

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

從一個DIV不textarea的 – Alex

+0

解決方案與JS只,見http://jsfiddle.net/jdhenckel/km7prgv4/3 –

+0

https://stackoverflow.com/a/38672314/1568658這一個行之有效 –

回答

25

雙方將作品就像一個魅力:),

  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") 
    }} 
    
在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> 
  • JQUERY:
  • https://paulund.co.uk/jquery-copy-clipboard

    +3

    我想補充對於這個答案,有一個整潔的插件,我用了幾次,可以處理這個問題:https://clipboardjs.com/ –

    +4

    第一個不工作 – Alex

    +1

    請告訴我第一個例子如何工作 – Alex

    2

    我試圖上面提出的解決方案。但它不足夠跨瀏覽器。我真的需要ie11來工作。 嘗試後,我得到了:

    <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> 
    

    與Firefox 57,鉻63,歌劇49,IE11,只有邊緣測試沒有工作。

    0

    將該鏈接添加爲答案,以便在第一個答案下面更多地關注Aaron Lavers的評論。

    這工作就像一個魅力 - http://clipboardjs.com。只需添加clipboard.js或min文件即可。在啓動時,使用具有要點擊的html組件的類,並將要複製的內容的組件id傳遞給click元素。