控制台快速选中Tooltip

105 阅读3分钟

前言

前端开发过程中少不了Tootip,但是每次控制条调试自定义样式时都比较麻烦帮他调出来。所以在此记录一下常规的方法。

解决方案AI版

在 Chrome 开发者工具中调试需要 hover 才显示的 ToolTip 时,可以尝试以下几种方法:

方法一:强制元素状态(最简单)

  1. 打开开发者工具 (F12)
  2. 找到 ToolTip 的父元素或触发元素
  3. 在 Elements 面板中,右键点击该元素
  4. 选择 "Force state" → ":hover"
  5. 此时 ToolTip 会一直保持显示状态

方法二:使用控制台暂停(最常用)

  1. 打开开发者工具 (F12)
  2. 切换到 Sources 面板
  3. 在右侧找到 "Event Listener Breakpoints"
  4. 展开 "Mouse" 分类
  5. 勾选 mouseout 事件
  6. 触发 ToolTip 显示,当鼠标移出时会自动暂停
  7. 切换到 Elements 面板,ToolTip 会保持显示

方法三:JavaScript 注入

在 Console 中输入:

// 阻止鼠标移出事件
document.addEventListener('mouseout', function(e) {
    e.stopImmediatePropagation();
}, true);

// 或直接触发 hover 效果
document.querySelector('[触发元素选择器]').dispatchEvent(new Event('mouseenter'));

方法四:修改 CSS 强制显示

在 Elements 面板,为 ToolTip 元素添加样式:

/* 强制显示并固定在屏幕上 */
display: block !important;
visibility: visible !important;
opacity: 1 !important;
position: fixed !important;
top: 50px !important;
left: 50px !important;
z-index: 9999 !important;

方法五:使用断点调试

  1. 找到 ToolTip 显示/隐藏的 JavaScript 代码
  2. mouseentermouseleave 事件处理函数上设置断点
  3. 触发 ToolTip 后会暂停执行
  4. 可以在暂停状态下检查元素

方法六:Chrome 扩展工具

安装浏览器扩展如:

  • Pesticide - 高亮所有元素
  • CSS Peeper - 方便查看样式

小技巧

  • 使用 Ctrl+Shift+C 打开元素选择器模式
  • 在 Elements 面板,按 Ctrl+F 搜索 ToolTip 相关类名
  • 使用 debugger; 语句在 JS 中插入断点

推荐使用方法一,因为它最简单且不会影响页面其他功能,调试完成后只需取消强制状态即可。

我的解决办法

熟悉我的朋友知道,我最讨厌这种既复杂又没营养的方法了。看似回答的很棒棒,实则搞半天都难以实现自己的需求。尤其是第一种方式,是初入行的朋友们比较常用的方式,但大多时候都难以生效要到element里翻半天。

我知道还有朋友会说直接把 hover改为click,哪有这么多麻烦。诚然这也是我经常用的方式之一,但有时候会忘记改回来。

后来在工作中又发现一个非常简便的方法分享出来:

在控制台输入:

setTimeout(() => { debugger }, 2000)

然后把鼠标移到hover元素上,完美!!! 反复调试的话就不停按鼠标上键重复运行即可,对代码完全没有插入性。

举一反三

通过这种方法不只是可以捕获toolTip,理论上只要在屏幕上显示的所有东西: 包括移入才显示出来的滚动条。