Firebug:如何检查随鼠标移动而改变的元素?

84
有时候我需要检查只有鼠标悬停在某个区域上才会显示的元素。问题是,如果你开始将鼠标移向Firebug控制台以查看更改,就会触发鼠标离开事件,所有我正在尝试检查的更改都会消失。如何处理这种情况呢?
基本上我正在寻找以下两种方法之一:
  • 在不移动鼠标的情况下切换到Firebug控制台(也许使用键盘快捷键?但我无法弄清如何仅使用键盘来使用Firebug)
  • 具有“冻结”页面的功能,使您的鼠标移动不再触发任何事件。
谢谢!
14个回答

98

HTML工具提示(Firebug)

在检查器或DOM中选择要操作的元素。转到Firebug的“Styles”选项卡,单击标签上的小箭头并选择“:hover”(也可用“:active”)。状态将保持为“hover”,您可以选择其他元素使它们悬停。

HTML工具提示(Firefox开发者工具)

输入图像描述

单击按钮以查看三个复选框,您可以使用它们为所选择的元素设置:hover、:active和:focus伪类。

此功能还可以从HTML视图中的弹出菜单中访问。

如果为节点设置了这些伪类之一,则标记视图中呈现所有应用了该伪类的节点旁边会出现一个橙色点:

输入图像描述

JQuery工具提示

打开控制台并输入jQuery('.css-class').trigger('mouseover')

常规JavaScript工具提示

打开控制台并输入document.getElementById('yourId').dispatchEvent(new Event('mouseover'));


14
":hover" 状态在 Firebug 中的 CSS 不会触发 JavaScript 的 hover 事件。只需使用 jQuery('.css-class').trigger('mouseover'),无需进行任何修改。 - machineaddict

33
在Firebug的样式面板中有一个下拉菜单,您可以选择:active:hover状态。

输入图像描述


31

您还可以设置计时器来启动调试器。在控制台中输入以下命令:

setTimeout(function(){ debugger; }, 10000);

这将为您提供10秒钟使用鼠标并使页面呈现您想要的方式以便检查它。 当调试器启动时,页面将会冻结,并且您将能够在开发者工具选项卡中探索元素,而DOM不会改变或响应任何额外的鼠标事件。


2
四年后,通过控制台手动调用调试器似乎仍然是在Firefox中冻结DOM并同时让您访问检查元素功能的唯一方法。 - waffl3head
6年后... - Steve Bennett

16

我认为你也可以这样做:

  • 选择Firebug的检查模式

  • 将鼠标悬停在弹出要检查的元素上,然后使用Tab键多次使Firebug处于活动状态(我发现很难看到Firebug是活动组件,但是通过不断尝试,当我看到Firefox的查找工具栏处于活动状态时,我会按下Shift+Tab键两次进入Firebug。)

  • 然后,我会使用左/右箭头键来展开/收缩元素,使用上/下箭头键在Firebug控制台中进行导航。

无论如何,这对我起作用了!


谢谢您的TAB提示,这正是我一直在寻找的。但仍不理想,我无法使用键盘切换Firebug标签页,也无法编辑CSS属性和其他内容。我猜测Firebug没有很好的键盘导航功能。 - serg
1
如果页面上有表单,这个方法就不起作用了,因为滚动位置会发生变化。 - Benbob

13

为了 Jquery UI 工具提示,我最终设置了一个长延迟来隐藏元素,这样在它被删除之前我就有时间来检查它。例如,我使用以下代码来检查工具提示:

    $( document ).tooltip({ hide: {duration: 100000 } });

取而代之:

    $( document ).tooltip();

6
您可以在mouseout事件处理程序的开头插入断点。只有在您允许它继续执行时,其代码才会被执行,而且您可以在执行停止时使用DOM检查器等工具。

2
如果JS太复杂,难以确定它在哪里触发怎么办? - serg
2
然后您启动Firebug分析器,触发mouseover事件,停止分析器并尝试缩小事件处理程序被触发的位置。 - mkoryak
安装FireQuery插件,您将获得HTML处理程序,单击它,您将获得事件的函数。 - Brij

3

使用Firebug检查元素的快捷键是Ctrl+Shift+C(Windows/Linux)。

点击此处查看所有Firebug键盘快捷键列表。


2

对于Bootstrap工具提示:

$(document ).tooltip({delay: { show: 0, hide: 100000 }});

1

我想分享一下我的首选方法。将这个小代码片段放入你的控制台中,可以让你随时使用简单的按键(例如本例中使用的F8键)启动调试器。

document.addEventListener("keydown", (event) => {if (event.key == 'F8') {debugger}}); 

如果您喜欢,也可以使用密钥代码:

document.addEventListener("keydown", (event) => {if (event.keyCode == 119) {debugger}}); 

1
在CSS菜单中选择:hover可能很好,如果你只想检查一些CSS代码,但如果你想要检查的内容使用JavaScript进行更改,则无法工作。
在这种情况下,一个简单的方法是在不同的窗口(Firebug栏的右上角)中打开Firebug,然后将鼠标移动到所需位置并从那里拖动浏览器窗口外的某些内容。现在您可以检查Firebug窗口中的任何内容。只是不要将鼠标移动回浏览器窗口中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接