全局键盘快捷键 Ctrl+Shift+L/S/K/H —— Output Console 的键盘优先工作流
高级用户不想点鼠标。高级用户想要 Ctrl+Shift+某键 然后看到效果。自 v2.13.75 起 JustZix 为 Output Console 加了 4 个全局快捷键 —— 它们全都活在 document 上一个捕获阶段的监听器里,所以即便焦点在应用的文本框里、页面有 vim 模式、或者你被困在一个模态弹窗上时它们也能工作。唯一的条件:页面上至少有一个 Output Console pane。
四个快捷键 —— 它们做什么
| 快捷键 | 动作 | 影响 | 起始版本 |
|---|---|---|---|
| Ctrl+Shift+L | 清空日志 | 页面上所有 Output Console | v2.13.75 |
| Ctrl+Shift+S | 切换搜索字段 | 所有 OC | v2.13.78 |
| Ctrl+Shift+K | 循环 viewMode [C+J] → [C] → [J] → [C+J] | 所有 OC | v2.13.78 |
| Ctrl+Shift+H | 显示 / 隐藏 API 帮助弹窗 | 单例叠层 | v2.13.78 |
所有快捷键都会广播给每个已渲染的 Output Console —— 如果你在一个标签页里有 3 个 OC pane(例如一个过滤「fetch」、第二个过滤「GTM」、第三个是原始的),Ctrl+Shift+L 会把三个都清空。
为什么是 Ctrl+Shift,而不是只用 Ctrl?
之前(v2.13.69-74)Output Console 用 Ctrl+L 做清空。问题:在某些浏览器里,如果焦点不在文本框上,Ctrl+L 会聚焦到地址栏。没有干净的冲突解决办法 —— content script 的监听器并不总能拦住浏览器的原生快捷键。
Ctrl+Shift+L 不与原生快捷键冲突。额外好处:和其他几个同一套路(Ctrl+Shift+S/K/H)—— 更容易记(「它们都以 Ctrl+Shift 开头」)。
捕获阶段监听器 —— 为什么它处处有效
设想页面上一个典型的 keydown 流程:
document (capture) ↓
body (capture) ↓
div.container (capture) ↓
textarea#commentBox (target) ← 用户在这里打字
div.container (bubble) ↑
body (bubble) ↑
document (bubble) ↑
JustZix 在 document 上以捕获阶段挂一个监听器 —— 链条里第一个,先于页面的任何处理器。匹配时(Ctrl+Shift+L/S/K/H),JustZix 调用 e.preventDefault() + e.stopPropagation(),页面永远看不到这个事件。它即便焦点在文本框里也有效 —— 而那里 Ctrl+L 通常会做「全选文本」。
使用场景 1 —— 键盘优先的 QA 工作流
你在一个应用里循环测试 5 个流程。每个流程:
- 执行一个动作(在应用里点击)
- 检查 Output Console —— 日志看起来 OK
- 在下一个流程前清空日志
没有快捷键:第 3 步 = 右键点 Output Console 的头部 → 「清空日志」。有快捷键:Ctrl+Shift+L。快 5 倍,手留在键盘上,焦点留在被测应用上。
额外好处:如果某个流程记录了几百行,用完之后你可能只想要你自己的 JZ.log:Ctrl+Shift+K 两次 → [J] 模式 → 只有你的日志可见。再一次 Ctrl+Shift+K → [C](只有页面)。第三次 → [C+J](全部)。
使用场景 2 —— 通过 Ctrl+Shift+H 发现 API
一个 JustZix 新用户。他知道有 JUSTZIX.log(),但记不得还有什么。与其打开文档:
Ctrl+Shift+H → 一个带弹窗的叠层:
- JZ API:动作方法列表(JZ.click、JZ.value、JZ.setValue、JZ.action)
- 别名:window.JUSTZIX(首选)、window.__JUSTZIX__(始终)、window.JZ(空闲时)
- 控制台捕获:哪些事件被捕获(console.log/warn/error/info/debug + JZ.log)
- 快捷键:Ctrl+Shift+L/S/K/H 及其描述
Esc / 点击外面 / 再次 Ctrl+Shift+H 关闭它。自 v2.13.80 起弹窗可按头部拖动 —— 你可以把它挪到一边看下面的东西,受限于视口所以它不会飞出屏幕。
使用场景 3 —— 不碰鼠标的搜索
Output Console 显示 800 行。你搜「purchase」。方式一:滚动加 Ctrl+F(浏览器搜索)—— 有效,但 Ctrl+F 也会找到页面其他元素里的文本。
方式二:Ctrl+Shift+S → 搜索字段在日志上方打开,焦点在那里,你打「purchase」→ 实时过滤只显示匹配的行。Esc 清空搜索。再一次 Ctrl+Shift+S 关闭搜索字段。
额外好处:搜索在 sessionStorage 里按标签页持久化。F5 → 搜索带着旧过滤回来。
使用场景 4 —— 多显示器的高级用户
显示器 1:被测应用。显示器 2:同一个标签页在另一个窗口里(Chrome「移到另一个窗口」+ 拖动)。第一个标签页触发一个流程,第二个标签页全屏显示 Output Console。焦点在显示器 2 上时按 Ctrl+Shift+L → 清空两个标签页?不会 —— 快捷键按标签页作用,所以只清空你留下焦点的那个标签页。
要跨标签页同步 → 在两个标签页里都用一条 JS 规则 + JUSTZIX.log,带一个时间戳来过滤。
坑
- 快捷键需要 ≥1 个已渲染的 Output Console。页面上没有 OC,监听器根本不会挂上。如果 JustZix 规则不匹配当前域名 → 没有 OC → 没有快捷键。这是有意的 —— 监听器只在需要时才挂。
- 某些浏览器用 Ctrl+Shift+字母做自己的快捷键(例如 Ctrl+Shift+T = 恢复已关闭的标签页)。JustZix 做 preventDefault,但有些浏览器快捷键在原生代码里运行,胜过我们的捕获监听器。如果你注意到冲突 —— 在扩展里改快捷键(已计划;目前是硬编码)。
- 帮助弹窗 z-index 2147483646。比 int32 最大值(2147483647)小一。其他 pane 的拖动把手 z-index 是 2147483645,所以弹窗永远在上面。有些页面也用最大 int —— JustZix 仍然以一之差胜过页面的模态框。
- viewMode 循环不会跳过状态,即便 [J] 会是空的。v2.13.78 总是走 [C+J] → [C] → [J] → [C+J],即便 [J] 会是空的。这是有意的 —— 即便没有日志也表明该模式是激活的。
- 焦点在 JS Console / JS pane 里时快捷键不会停。那里用户在打代码 —— Ctrl+Shift+L 可能造成干扰。监听器仍然做 preventDefault,所以快捷键能工作而不删除文本。最佳实践:如果你正在 pane 里活跃地打字,用鼠标做清空 / 切换模式。
接下来做什么
全局快捷键是 Output Console 之上的一个「高级用户层」—— 大多数用户点 pane 头部的按钮就够了。但如果 QA 工具栏是你每天用的工具,这 4 个快捷键每周能给你省下几十分钟。
另见相关文章:
- Output Console 深度解析 —— 面板的完整 API
- window.JUSTZIX + JZ 辅助函数 —— 快捷键在帮助弹窗里展示的那个程序化 API
- 标签页里的迷你 IDE —— 所有窗口的完整地图
安装 JustZix —— 完全免费,无需账号,没有服务器。
为这篇文章评分
暂无评分 — 成为第一个。