Open In App

How to create copy to clipboard button ?

Last Updated : 20 Nov, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

In this article, we will discuss how to create a copy to the clipboard button.

There are multiple scenarios in web development where we have to give user functionality to copy certain data into a clipboard using a button. Whether it is a sample of code or it is the User’s own information, we can create a copy button to copy data to the clipboard using the navigator.clipboard.writeText() function. This function writes the data fed to it as a parameter into the clipboard. We can use this to copy any text to the clipboard.

First, we select the text to copy to the clipboard whether it is from a div or from an input box using document.getElementById() or any other suitable function. Then we store the value of that text in a variable and pass that variable as an argument to navigator.clipboard.writeText() function to copy it to the clipboard.

Syntax:

navigator.clipboard.writeText( <text> )

Where,

<text>: determines string variable to be copied.

Example 1: Here we have added a copy to the clipboard button to a div with text in it to copy the sample text into the clipboard.

HTML




<!DOCTYPE html>
<html>
<head>
    <style>
        body {
            margin: 100px;
        }
 
        #textbox {
            width: 40vw;
            height: 30vh;
            position: absolute;
            margin-left: 50px;
            margin-top: 20px;
        }
 
        button {
            width: 70px;
            height: 40px;
            margin-top: 120px;
            margin-left: 50px;
            background-color: green;
            color: white;
            border-radius: 10px;
            box-shadow: grey;
            position: absolute;
        }
 
        #sample {
            width: 70vw;
            margin: 50px;
            background-color: green;
            color: white;
            padding: 20px;
            font-size: x-large;
            position: absolute;
        }
 
        h1 {
            margin-left: 50px;
            margin-top: 160px;
        }
    </style>
</head>
 
<body>
    <div id="sample">
        Geeksforgeeks is best learning platform.
    </div>
    <br />
     
    <button onclick="copyText()">Copy</button>
    <br />
     
    <h1>Copied Text:</h1><br />
    <textarea id="textbox"></textarea>
     
    <script>
        function copyText() {
     
            /* Copy text into clipboard */
            navigator.clipboard.writeText
                ("Geeksforgeeks is best learning platform.");
        }
    </script>
</body>
</html>


Output:

Output

Example 2: Here, we have copied text from a text area where user can write their own text and then copy it to the clipboard, and that text is shown on the lower band also.

HTML




<!DOCTYPE html>
<html>
<head>
    <style>
        #textbox {
            width: 70vw;
            height: 30vh;
        }
 
        button {
            width: 70px;
            height: 40px;
            background-color: green;
            color: white;
            border-radius: 10px;
            box-shadow: grey;
        }
 
        #clipboard {
            width: 70vw;
            margin: 50px;
            background-color: green;
            color: white;
            padding: 20px;
            font-size: x-large;
        }
    </style>
</head>
 
<body>
    <center>
        <textarea id="textbox"></textarea><br />
        <button onclick="copyText()">Copy</button>
        <br />
        <h1>Copied Text:</h1><br />
        <span id="clipboard">NA</span>
    </center>
 
    <script>
        function copyText() {
     
            /* Select text area by id*/
            var Text = document.getElementById("textbox");
 
            /* Select the text inside text area. */
            Text.select();
 
            /* Copy selected text into clipboard */
            navigator.clipboard.writeText(Text.value);
 
            /* Set the copied text as text for
            div with id clipboard */
            document.getElementById("clipboard")
                .innerHTML = Text.value;
        }
    </script>
</body>
</html>


Output:

Output



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads