Copy to clipboard using javascript without any plugin
On April 20, 2017 In Javascript and jQuery
Copy to clipboard using javascript, this is the topic that we are going to explore in this post. The solution we will discuss here will use native javascript and no third party tool. As the solution is bare minimum code snippet, it’s browser support will be limited.
The way this solution for Copy to clipboard using javascript works is simple and is divided in 3 steps
- Select the text from DOM element
- Create an input element and place the selected text as value of created input.
- Focus on created input element and select the entire text (It’s value).
- Execute (document.execCommand(‘copy’)
Let’s begin with our solution
Select the text to be copied
<p id="selectedItem">Text to copy</p> <button onClick="copyT('selectedItem')">Copy</button>
The remaining steps are summed up in following function
function copyT(objId) { //Step 1: select the text from DOM element var txt = document.getElementById(objId).textContent; //Step 2: Create input and set value var elem = document.createElement('input'); elem.value = txt; //position is set such that the element is not visible elem.style = 'postion:relative;top:-100px;'; //append the input element to body document.body.appendChild(elem); //set focus to inserted input element elem.focus(); //Step 4: Select the text in input element elem.setSelectionRange(0, txt.length); //Step 4: Execute document.execCommand('copy') if (document.execCommand('copy')) { alert('Copied successfully'); } else { alert('Clipboard access not supported in this browser'); } }
There are few pitfalls to this soulution. It will not work in the browser that have disabled access to clipboard using javascript (like Safari). In that case, above solution will simply alert the message “Clipboard access not supported in this browser”