From dd113ebf09dd3448d9c752e960efaf24c05500a4 Mon Sep 17 00:00:00 2001 From: mediabot-pt <295750538+mediabot-pt@users.noreply.github.com> Date: Mon, 29 Jun 2026 22:17:27 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20PSK=20=E5=A4=8D=E5=88=B6=E5=85=BC?= =?UTF-8?q?=E5=AE=B9=20HTTP=20=E7=8E=AF=E5=A2=83=EF=BC=88execCommand=20?= =?UTF-8?q?=E9=99=8D=E7=BA=A7=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/src/views/Psks.vue | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/web/src/views/Psks.vue b/web/src/views/Psks.vue index f20cdba..3a09f10 100644 --- a/web/src/views/Psks.vue +++ b/web/src/views/Psks.vue @@ -166,7 +166,20 @@ const handleToggle = async (row) => { const copySecret = async (secret) => { try { - await navigator.clipboard.writeText(secret) + // 优先 clipboard API(需要 HTTPS) + if (navigator.clipboard && window.isSecureContext) { + await navigator.clipboard.writeText(secret) + } else { + // HTTP 降级:execCommand + const textarea = document.createElement('textarea') + textarea.value = secret + textarea.style.position = 'fixed' + textarea.style.opacity = '0' + document.body.appendChild(textarea) + textarea.select() + document.execCommand('copy') + document.body.removeChild(textarea) + } ElMessage.success('已复制到剪贴板') } catch { ElMessage.error('复制失败,请手动复制')