Home > Back-end >  How to Copy To Clipboard without using a btn? To click
How to Copy To Clipboard without using a btn? To click

Time:11-05

So I want to create a ClickToCopyToClipboard using Javascript that when someone clicks on the textarea the contents of it will be copied to there clipboard. But all the videos I watched from Youtube needs a button to be clicked.

So here's my HTML:

<div class="wrapper">
  <textarea 
onclick="copytxt()">Lorem 
ipsum dolor sit amet, 
consectetur adipiscing elit. 
Pellentesque bibendum risus 
eros, eu mollis lorem 
consectetur eget.</textarea>
</div>

And here's my JS:

function copytxt(){
  const textarea 
document.querySelector("textarea");
  textarea.select();
  document.execCommand("copy");
};

CodePudding user response:

Your JS is close, though it has a syntax error in it (missing =). Here's a working example with proper addEventListener style, as opposed to inline JS.

document.querySelector("textarea").addEventListener("click", function(){
  this.select();
  document.execCommand("copy");
});
<textarea readonly>click me to copy my contents</textarea>
<br><br>
Then try pasting them in here:
<input type="text"/>
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>

CodePudding user response:

try adding an event listener to the text area,

<!DOCTYPE html>
<html>
<body>

<p>Click anywhere in the textarea to copy the text from it. Try to paste the text (e.g. ctrl v) afterwards in the input field given below, to see the effect.</p>

<textarea type="text" value="Hello World" id="myInput">
hello world!!!
</textarea>
<input type="text" />

<script>

/* Get the text field */
var copyText = document.getElementById("myInput");
copyText.addEventListener('click', () => { myFunction(); })

function myFunction() {

/* Select the text field */
copyText.select();
copyText.setSelectionRange(0, 99999); /* For mobile devices */

/* Copy the text inside the text field */
navigator.clipboard.writeText(copyText.value);

/* Alert the copied text */
alert("Copied the text: "   copyText.value);
}
</script>

</body>
</html>
  • Related