From ae7402b62cbfc431fc61f40ce4ac9f1da4d0763d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A7=89?= Date: Fri, 13 Oct 2023 19:08:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=80=E4=B8=AA=E6=8C=89?= =?UTF-8?q?=E4=B8=8BEsc=E7=8A=B6=E6=80=81=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/client.js | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/client.js b/src/client.js index eb5140f..3e34fff 100644 --- a/src/client.js +++ b/src/client.js @@ -180,6 +180,32 @@ export default class ClientList { // 也插入自己的信息 const avatar = localStorage.getItem('avatar') this.push({ id: 'self', name: username, avatar }, true) + + // 监听键盘Esc按下, 如果全局没有焦点则显示调试信息, 如果在调试信息显示期间弹起Esc则隐藏调试信息 + let debug = false + let debugElement = Dialog({ + children: [ + Button({ + textContent: '关闭', + onclick: event => document.body.removeChild(debugElement) + }), + Span({ + textContent: JSON.stringify(this.clientlist, null, 4) + }) + ] + }) + document.addEventListener('keydown', event => { + if (document.activeElement === document.body && event.key === 'Escape' && !debug) { + document.body.appendChild(debugElement) + debug = true + } + }) + document.addEventListener('keyup', event => { + if (document.activeElement === document.body && event.key === 'Escape' && debug) { + document.body.removeChild(debugElement) + debug = false + } + }) } getAvatar(id) { } setAvatar(user) {