summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2021-09-20 13:36:26 +0200
committerFlorian Bruhin <me@the-compiler.org>2021-09-20 13:51:34 +0200
commit1bea82698153ba3e20529e010bc3f254b9904231 (patch)
tree055613e45091953787c64757df23cbef355adc08
parent2b28ab015d173e0e9d88b4537b38c6f2f94ec4f3 (diff)
downloadqutebrowser-1bea82698153ba3e20529e010bc3f254b9904231.tar.gz
qutebrowser-1bea82698153ba3e20529e010bc3f254b9904231.zip
Add GM_setClipboard
Based on the Greasemonkey implementation: https://github.com/greasemonkey/greasemonkey/blob/4.11/src/bg/api-provider-source.js#L232-L249 Needed by e.g. this script to work at all: https://greasyfork.org/en/scripts/394820-mouseover-popup-image-viewer
-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,