From c0472bb57b8e90bca20335efe8f37b4ebc679db1 Mon Sep 17 00:00:00 2001 From: claude-bot Date: Wed, 13 May 2026 16:44:58 +0900 Subject: [PATCH] =?UTF-8?q?site:=20=EC=82=AC=EC=9D=B4=ED=8A=B8=20=ED=8C=9D?= =?UTF-8?q?=EC=97=85=EC=B0=BD=20ESC=20=EB=A1=9C=20=EB=8B=AB=EA=B8=B0=20?= =?UTF-8?q?=EC=A7=80=EC=9B=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - listEditor: keydown(Escape) 시 열린 .modalOverlay 닫기. 별칭 모달은 "돌아가기" 와 동일하게 입력값을 저장한 뒤 닫는다. - datapack: pickModal 도 ESC 로 닫히게 추가. (팝업 바깥 영역 클릭으로 닫기는 두 페이지 모두 기존부터 동작 중.) --- public/listEditor.js | 13 +++++++++++++ views/op/datapack.ejs | 7 +++++++ 2 files changed, 20 insertions(+) diff --git a/public/listEditor.js b/public/listEditor.js index 44aee82..09fe40a 100644 --- a/public/listEditor.js +++ b/public/listEditor.js @@ -348,6 +348,19 @@ if (e.target === m) closeAllModals() }) }) + // ESC 로 열린 모달 닫기. 별칭 모달은 "돌아가기" 와 같은 저장 후 닫기 의미. + document.addEventListener('keydown', function (e) { + if (e.key !== 'Escape') return + var aliasOpen = aliasModal && !aliasModal.hidden + var anyOpen = document.querySelector('.modalOverlay:not([hidden])') + if (!anyOpen) return + e.preventDefault() + if (aliasOpen) { + closeAliasModalSaving() + return + } + closeAllModals() + }) document.getElementById('edit-music-save').addEventListener('click', function () { var url = document.getElementById('edit-music-url').value.trim() diff --git a/views/op/datapack.ejs b/views/op/datapack.ejs index 3162697..922233a 100644 --- a/views/op/datapack.ejs +++ b/views/op/datapack.ejs @@ -79,6 +79,13 @@ pickModal.addEventListener('click', function (e) { if (e.target === pickModal) pickModal.hidden = true }) + // ESC 로 닫기. + document.addEventListener('keydown', function (e) { + if (e.key === 'Escape' && !pickModal.hidden) { + pickModal.hidden = true + e.preventDefault() + } + }) document.querySelectorAll('#pickList .pickable').forEach(function (card) { card.addEventListener('click', function () { pickedKey = card.getAttribute('data-key')