Created
March 10, 2019 21:16
-
-
Save zeshanshani/3637c8a198695ab95fadd32727fcb350 to your computer and use it in GitHub Desktop.
This function allows you to copy a string to the clipboard.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Copy Text to Clipboard | |
* | |
* Usage: simply pass the string to copyToClipboard() funciton and it will be | |
* copied to the clipboard | |
* | |
* Source: https://hackernoon.com/copying-text-to-clipboard-with-javascript-df4d4988697f | |
*/ | |
function copyToClipboard( str ) { | |
const el = document.createElement('textarea'); // Create a <textarea> element | |
el.value = str; // Set its value to the string that you want copied | |
el.setAttribute('readonly', ''); // Make it readonly to be tamper-proof | |
el.style.position = 'absolute'; | |
el.style.left = '-9999px'; // Move outside the screen to make it invisible | |
document.body.appendChild(el); // Append the <textarea> element to the HTML document | |
const selected = | |
document.getSelection().rangeCount > 0 // Check if there is any content selected previously | |
? document.getSelection().getRangeAt(0) // Store selection if found | |
: false; // Mark as false to know no selection existed before | |
el.select(); // Select the <textarea> content | |
document.execCommand('copy'); // Copy - only works as a result of a user action (e.g. click events) | |
document.body.removeChild(el); // Remove the <textarea> element | |
if (selected) { // If a selection existed before copying | |
document.getSelection().removeAllRanges(); // Unselect everything on the HTML document | |
document.getSelection().addRange(selected); // Restore the original selection | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment