From d785c78d6d13fec3c14f631a67dd5b82d431a59c Mon Sep 17 00:00:00 2001 From: Your Name Date: Sat, 30 May 2026 00:26:14 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=AE=A1=E8=AE=A1=E4=BF=AE=E5=A4=8D=20?= =?UTF-8?q?=E2=80=94=20esc()=20=E5=8A=A0=E5=8D=95=E5=BC=95=E5=8F=B7?= =?UTF-8?q?=E8=BD=AC=E4=B9=89=20+=20=E7=A7=BB=E9=99=A4=E6=AD=BB=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=20editQuickCmd?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit B2: esc() 不转义 ' 可能在 onclick 中注入 B4: editQuickCmd 定义但无调用(✏按钮已移除) Co-Authored-By: Claude Opus 4.7 --- web/app/terminal.html | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/web/app/terminal.html b/web/app/terminal.html index 741910e8..6954722d 100644 --- a/web/app/terminal.html +++ b/web/app/terminal.html @@ -733,18 +733,6 @@ function addQuickCmd() { document.getElementById('qcName').focus(); } -function editQuickCmd(id) { - let userCmds = []; - try { userCmds = JSON.parse(localStorage.getItem(K_CMDS) || '[]'); } catch(e) {} - const cmd = userCmds.find(c => c.id === id); - if (!cmd) return; - document.getElementById('qcTitle').textContent = '编辑命令'; - document.getElementById('qcName').value = cmd.name; - document.getElementById('qcCmd').value = cmd.cmd; - document.getElementById('qcEditId').value = id; - document.getElementById('qcModal').classList.remove('hidden'); -} - function saveQuickCmd() { const name = document.getElementById('qcName').value.trim(); const cmd = document.getElementById('qcCmd').value.trim(); @@ -798,7 +786,7 @@ function filterServerModal() { } // ── Utils ── -function esc(s) { if (!s) return ''; const d = document.createElement('div'); d.textContent = s; return d.innerHTML.replace(/"/g,'"'); } +function esc(s) { if (!s) return ''; const d = document.createElement('div'); d.textContent = s; return d.innerHTML.replace(/"/g,'"').replace(/'/g,'''); } // ── Init ── (async () => {