diff --git a/web/src/app/home/plugins/page.tsx b/web/src/app/home/plugins/page.tsx index 594f3829..f51e21bd 100644 --- a/web/src/app/home/plugins/page.tsx +++ b/web/src/app/home/plugins/page.tsx @@ -402,13 +402,33 @@ export default function PluginConfigPage() { }; const handleCopyDebugInfo = (text: string, type: 'url' | 'key') => { - navigator.clipboard.writeText(text); - if (type === 'url') { - setCopiedDebugUrl(true); - setTimeout(() => setCopiedDebugUrl(false), 2000); - } else { - setCopiedDebugKey(true); - setTimeout(() => setCopiedDebugKey(false), 2000); + try { + navigator.clipboard.writeText(text); + if (type === 'url') { + setCopiedDebugUrl(true); + setTimeout(() => setCopiedDebugUrl(false), 2000); + } else { + setCopiedDebugKey(true); + setTimeout(() => setCopiedDebugKey(false), 2000); + } + } catch { + const textArea = document.createElement('textarea'); + textArea.value = text; + textArea.style.position = 'fixed'; + textArea.style.left = '-999999px'; + textArea.style.top = '-999999px'; + document.body.appendChild(textArea); + textArea.select(); + textArea.setSelectionRange(0, 99999); + const success = document.execCommand('copy'); + document.body.removeChild(textArea); + if (success) { + setCopiedDebugUrl(true); + setTimeout(() => setCopiedDebugUrl(false), 2000); + } else { + setCopiedDebugKey(true); + setTimeout(() => setCopiedDebugKey(false), 2000); + } } };