execCommand(‘copy’)
There is a very new option. It is cross-browser but it will take time until everyone has updated their browser.
It works by using the document.execCommand('copy');
function.
With this function you’ll copy the select text. This will not only work with textarea
s but with every selected text on the webpage (like in span
, p
, div
, etc.).
Available in Internet Explorer 10+, Chrome 43+, Opera 29+ and Firefox 41+ (see execCommand
compatibility here).
Example
// Setup the variables
var textarea = document.getElementById("textarea");
var answer = document.getElementById("copyAnswer");
var copy = document.getElementById("copyBlock");
copy.addEventListener('click', function(e) {
// Select some text (you could also create a range)
textarea.select();
// Use try & catch for unsupported browser
try {
// The important part (copy selected text)
var ok = document.execCommand('copy');
if (ok) answer.innerHTML = 'Copied!';
else answer.innerHTML = 'Unable to copy!';
} catch (err) {
answer.innerHTML = 'Unsupported Browser!';
}
});
<textarea id="textarea" rows="6" cols="40">
Lorem ipsum dolor sit amet, eamsemper maiestatis no.
</textarea><br/>
<button id="copyBlock">Click to copy</button> <span id="copyAnswer"></span>