summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--qutebrowser/javascript/greasemonkey_wrapper.js17
1 files changed, 17 insertions, 0 deletions
diff --git a/qutebrowser/javascript/greasemonkey_wrapper.js b/qutebrowser/javascript/greasemonkey_wrapper.js
index 8a0a12c0d..ced4e1063 100644
--- a/qutebrowser/javascript/greasemonkey_wrapper.js
+++ b/qutebrowser/javascript/greasemonkey_wrapper.js
@@ -110,6 +110,22 @@
}
}
+ // Based on GreaseMonkey:
+ // https://github.com/greasemonkey/greasemonkey/blob/4.11/src/bg/api-provider-source.js#L232-L249
+ function GM_setClipboard(text) {
+ function onCopy(event) {
+ document.removeEventListener('copy', onCopy, true);
+
+ event.stopImmediatePropagation();
+ event.preventDefault();
+
+ event.clipboardData.setData('text/plain', text);
+ }
+
+ document.addEventListener('copy', onCopy, true);
+ document.execCommand('copy');
+ }
+
// Stub these two so that the gm4 polyfill script doesn't try to
// create broken versions as attributes of window.
function GM_getResourceText(caption, commandFunc, accessKey) {
@@ -126,6 +142,7 @@
const entries = {
'log': GM_log,
'addStyle': GM_addStyle,
+ 'setClipboard': GM_setClipboard,
'deleteValue': GM_deleteValue,
'getValue': GM_getValue,
'listValues': GM_listValues,