Skip to content

Instantly share code, notes, and snippets.

@rproenca
Last active December 2, 2025 20:46
Show Gist options
  • Select an option

  • Save rproenca/64781c6a1329b48a455b645d361a9aa3 to your computer and use it in GitHub Desktop.

Select an option

Save rproenca/64781c6a1329b48a455b645d361a9aa3 to your computer and use it in GitHub Desktop.
Copy text to clipboard using Javascript. It works on Safari (iOS) and other browsers.
window.Clipboard = (function(window, document, navigator) {
var textArea,
copy;
function isOS() {
return navigator.userAgent.match(/ipad|iphone/i);
}
function createTextArea(text) {
textArea = document.createElement('textArea');
textArea.value = text;
document.body.appendChild(textArea);
}
function selectText() {
var range,
selection;
if (isOS()) {
range = document.createRange();
range.selectNodeContents(textArea);
selection = window.getSelection();
selection.removeAllRanges();
selection.addRange(range);
textArea.setSelectionRange(0, 999999);
} else {
textArea.select();
}
}
function copyToClipboard() {
document.execCommand('copy');
document.body.removeChild(textArea);
}
copy = function(text) {
createTextArea(text);
selectText();
copyToClipboard();
};
return {
copy: copy
};
})(window, document, navigator);
Clipboard.copy('text to be copied');
@SWei1234
Copy link
Copy Markdown

SWei1234 commented Jan 7, 2021

Looks like it's not working on safari 13...

@creeperyang
Copy link
Copy Markdown

@ppab
Copy link
Copy Markdown

ppab commented Jul 22, 2021

Thanks!

@stow1x
Copy link
Copy Markdown

stow1x commented Aug 19, 2021

That cool. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment