Sé que hay una pregunta similar, pero cuando lo intento, no funciona. Descubrí que es porque cambié la posición del botón sobre el div que quiero copiar, pero no sé cómo solucionarlo:/ Debo decir que no he entendido el JS:/
function copy() { var target = document.getElementById('mydiv'); var range, select; if (document.createRange) { range = document.createRange(); range.selectNode(target) select = window.getSelection(); select.removeAllRanges(); select.addRange(range); document.execCommand('copy'); select.removeAllRanges(); } else { range = document.body.createTextRange(); range.moveToElementText(target); range.select(); document.execCommand('copy'); } } #mydiv{ border: solid black 1px; border-radius: 4x; margin: 10px 0px; } <input onclick="copy()" type="button" value="Copy" /> <p></p> <div>Insert text below</div> <div id="mydiv" contenteditable="true"></div>Use range.selectNodeContents(target) en lugar de range.selectNode(target) para evitar copiar también el HTML externo
function copy() { var target = document.getElementById('mydiv'); var range, select; if (document.createRange) { range = document.createRange(); range.selectNodeContents(target) select = window.getSelection(); select.removeAllRanges(); select.addRange(range); document.execCommand('copy'); select.removeAllRanges(); } else { range = document.body.createTextRange(); range.moveToElementText(target); range.select(); document.execCommand('copy'); } } #mydiv{ border: solid black 1px; border-radius: 4x; margin: 10px 0px; } <input onclick="copy()" type="button" value="Copy" /> <p></p> <div>Insert text below</div> <div id="mydiv" contenteditable="true"></div>