Estoy usando el siguiente script para copiar el código HTML de una página completa.
Esto funciona y copia toda la página; sin embargo, también incluye el código del botón 'Copiar HTML'.
¿Cómo puedo incluir todo menos esto?
function copyTextToClipboard(text) { var textArea = document.createElement("textarea"); textArea.style.position = 'fixed'; textArea.style.top = 0; textArea.style.left = 0; textArea.style.width = '2em'; textArea.style.height = '2em'; textArea.style.padding = 0; textArea.style.border = 'none'; textArea.style.outline = 'none'; textArea.style.boxShadow = 'none'; textArea.style.background = 'transparent'; textArea.value = text; document.body.appendChild(textArea); textArea.select(); try { var successful = document.execCommand('copy'); var msg = successful ? 'successful' : 'unsuccessful'; console.log('Copying text command was ' + msg); } catch (err) { console.log('Oops, unable to copy'); } document.body.removeChild(textArea); } $(document).ready(function() { $("#btnDate").click(function() { var allHTML = document.documentElement.outerHTML; copyTextToClipboard(allHTML); }); }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <h1>Copy only this</h1> <h2>And this</h2> <p>And this but not the button below</p> <button type="button" id="btnDate" class="btn btn-primary">Copy HTML</button>Delega, quítalo y vuelve a ponerlo
NOTA: Hay una nueva forma de interactuar con el portapapeles
function copyTextToClipboard(text) { var textArea = document.createElement("textarea"); textArea.style.position = 'fixed'; textArea.style.top = 0; textArea.style.left = 0; textArea.style.width = '2em'; textArea.style.height = '2em'; textArea.style.padding = 0; textArea.style.border = 'none'; textArea.style.outline = 'none'; textArea.style.boxShadow = 'none'; textArea.style.background = 'transparent'; textArea.value = text; document.body.appendChild(textArea); textArea.select(); try { var successful = document.execCommand('copy'); var msg = successful ? 'successful' : 'unsuccessful'; console.log('Copying text command was ' + msg); } catch (err) { console.log('Oops, unable to copy'); } document.body.removeChild(textArea); } $(document).ready(function() { $(document).on("click","#btnDate",function() { const $btn = $(this).clone() $(this).remove() var allHTML = document.documentElement.outerHTML; copyTextToClipboard(allHTML); $("body").append($btn) }); }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <h1>Copy only this</h1> <h2>And this</h2> <p>And this but not the button below</p> <button type="button" id="btnDate" class="btn btn-primary">Copy HTML</button>