diff --git a/www/links.html b/www/links.html
index b6b8299e..940de9fd 100644
--- a/www/links.html
+++ b/www/links.html
@@ -166,6 +166,31 @@ Telegram: rtmps://xxx-x.rtmp.t.me/s/xxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxx
document.getElementById('sharedel').style.display = 'none';
}
+ function copyTextToClipboard(text) {
+ // https://web.dev/patterns/clipboard/copy-text
+ if (navigator.clipboard && window.isSecureContext) {
+ navigator.clipboard.writeText(text).catch(err => {
+ console.error(err.name, err.message);
+ });
+ } else {
+ const textarea = document.createElement('textarea');
+ textarea.value = text;
+ textarea.style.opacity = '0';
+ document.body.appendChild(textarea);
+
+ textarea.focus();
+ textarea.select();
+
+ try {
+ document.execCommand('copy');
+ } catch (err) {
+ console.error(err.name, err.message);
+ }
+
+ document.body.removeChild(textarea);
+ }
+ }
+
document.getElementById('shareadd').addEventListener('click', ev => {
ev.preventDefault();
share('POST').then(r => r.json()).then(r => onshareadd(r));
@@ -173,7 +198,7 @@ Telegram: rtmps://xxx-x.rtmp.t.me/s/xxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxx
document.getElementById('shareget').addEventListener('click', ev => {
ev.preventDefault();
- navigator.clipboard.writeText(ev.target.href);
+ copyTextToClipboard(ev.target.href);
});
document.getElementById('sharedel').addEventListener('click', ev => {