execCommand('copy') on text code example
Example 1: copy to clipboard javascript
// Since Async Clipboard API is not supported for all browser!
function copyTextToClipboard(text) {
var textArea = document.createElement("textarea");
textArea.value = text
document.body.appendChild(textArea);
textArea.focus();
textArea.select();
try {
var successful = document.execCommand('copy');
var msg = successful ? 'successful' : 'unsuccessful';
console.log('Copying text command was ' + msg);
} catch (err) {
console.log('Oops, unable to copy');
}
document.body.removeChild(textArea);
}
Example 2: js copy to clipboard cross browser
/** copy text to the clipboard */
function copy2clipboard( text, callback /* optional */ ) {
// use modern clipboard API
if ( navigator.clipboard ) {
navigator.clipboard.writeText( text )
.then( function(){
// if a callback is provided, call it
callback && callback();
}).catch( function( err ){
errorMessage( err );
});
}
// use old document.execCommand('copy')
else {
// create a temporary textArea containing the text
var textArea = document.createElement( 'textarea' );
textArea.setAttribute( 'style', 'width:1px;border:0;opacity:0;' );
document.body.appendChild( textArea );
textArea.value = text;
// select the textArea
textArea.select();
try {
// copy from textArea
var isCopied = document.execCommand('copy');
// if copy was successful, and a callback is provided, call it. if copy failed, display error message
isCopied ? ( callback && callback() ) : errorMessage();
}
catch( err ) {
errorMessage( err );
}
// remove temporary textArea
document.body.removeChild( textArea );
}
/** display error message */
function errorMessage( err ) {
alert( 'Copy to clipboard failed ' + ( err || '' ) )
};
}