This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/app/assets/javascripts/discourse/lib/copy-text.js.es6

35 lines
834 B
JavaScript

/**
* Copy text to the clipboard. Must be called from within a user gesture (Chrome).
*/
export default function(text, element) {
let supported = false;
try {
// Chrome: This only returns true within a user gesture.
// Chrome: queryCommandEnabled() only returns true if a selection is
// present, so we use queryCommandSupported() instead for the fail-fast.
if (document.queryCommandSupported('copy')) {
supported = true;
}
} catch (e) {
// Ignore
}
if (!supported) {
return;
}
let newRange = document.createRange();
newRange.selectNode(element);
const selection = window.getSelection();
selection.removeAllRanges();
selection.addRange(newRange);
try {
if (document.execCommand("copy")) {
return true;
}
} catch (e) {
// Ignore
}
return false;
}