diff options
| author | Ivan Gabaldon <igabaldon@inetol.net> | 2025-10-24 11:28:07 +0200 |
|---|---|---|
| committer | Markus Heiser <markus.heiser@darmarIT.de> | 2025-10-24 12:32:43 +0200 |
| commit | 8dacbbbb157359447a07ea4562ab6447dacb5f06 (patch) | |
| tree | 094ae416687a1e5e6878130fe3c4f7b595c62bbf /client/simple/src/js/main/results.ts | |
| parent | b770a46e1f8f339b2bb2a53faba80e9c9a5b1611 (diff) | |
[fix] client/simple: insecure ctx clipboard copy
Uses the deprecated [`execCommand()`](https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand)
to copy content to clipboard if accessing the instance through HTTP, this method
isn't going away soon.
Closes https://github.com/searxng/searxng/issues/5359
Diffstat (limited to 'client/simple/src/js/main/results.ts')
| -rw-r--r-- | client/simple/src/js/main/results.ts | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/client/simple/src/js/main/results.ts b/client/simple/src/js/main/results.ts index 8b2d8c9b6..42298f9f8 100644 --- a/client/simple/src/js/main/results.ts +++ b/client/simple/src/js/main/results.ts @@ -121,7 +121,19 @@ listen("click", "#copy_url", async function (this: HTMLElement) { const target = this.parentElement?.querySelector<HTMLPreElement>("pre"); assertElement(target); - await navigator.clipboard.writeText(target.innerText); + if (window.isSecureContext) { + await navigator.clipboard.writeText(target.innerText); + } else { + const selection = window.getSelection(); + if (selection) { + const range = document.createRange(); + range.selectNodeContents(target); + selection.removeAllRanges(); + selection.addRange(range); + document.execCommand("copy"); + } + } + const copiedText = this.dataset.copiedText; if (copiedText) { this.innerText = copiedText; |