diff options
author | Florian Bruhin <me@the-compiler.org> | 2021-09-20 13:36:26 +0200 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2021-09-26 16:26:21 +0200 |
commit | 7ef6647a38eebec43374194df51dcdef9236c6f4 (patch) | |
tree | fe9c02bd5467fe7e5d489e7c938b732a2ac398a1 | |
parent | b4b7b3699e1989f8b91a455e4bd0ecb707fa594d (diff) | |
download | qutebrowser-7ef6647a38eebec43374194df51dcdef9236c6f4.tar.gz qutebrowser-7ef6647a38eebec43374194df51dcdef9236c6f4.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
(cherry picked from commit 1bea82698153ba3e20529e010bc3f254b9904231)
-rw-r--r-- | qutebrowser/javascript/greasemonkey_wrapper.js | 17 |
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, |