ChatGPT解决这个技术问题 Extra ChatGPT

在 chrome 调试器/DevTools 面板中冻结屏幕以进行弹出窗口检查?

我正在使用 chrome 检查器尝试分析 twitter 引导弹出窗口的 z-index,发现它非常令人沮丧......

有没有办法冻结弹出框(如图所示),以便我可以评估和修改相关的 CSS?

在关联链接上放置固定的“悬停”不会导致弹出框出现。

显示弹出窗口后立即尝试在 JavaScript 中设置断点 (debugger;)
我使用 window.setTimeout 在 5 秒内触发 debugger,然后将鼠标悬停在元素上并等待。
你好,这里是 DevTools 技术作家。你们都可以发给我MVCEs来演示这个问题吗?截至 2019 年,我们有一些工具可以解决问题(event listener breakpointspseudo-class toggles),但在重现您的情况之前,我无法提供详细的答案。
You can found other solution here 适用于 Chrome 和火狐
@KayceBasques 下面是一个示例:telerik.com/kendo-angular-ui/components/dropdowns/dropdownlist 单击下拉列表将其打开,然后尝试检查元素视图中的列表内容弹出框。

A
Abram

得到它的工作。这是我的程序:

浏览到所需页面 打开开发控制台 - Windows/Linux 上的 F12 或 macOS 上的 option + ⌘ + J 在 chrome 检查器中选择 Sources 选项卡 在 Web 浏览器窗口中,将鼠标悬停在所需元素上以启动弹出窗口在 Windows/上按 F8显示弹出框时的 Linux(或 macOS 上的 fn + F8)。如果您点击了实际页面上的任何位置,F8 将不会执行任何操作。您的最后一次单击需要在检查器中的某个位置,例如源选项卡转到检查器中的元素选项卡找到您的弹出框(它将嵌套在触发元素的 HTML 中) 修改 CSS 很有趣


这个工作流程给了我一个关于断点调试器的简短而有用的介绍,并帮助隔离了一个难以设置样式的菜单,因为它在控制台单击时消失了。
如果 DOM 元素使用 focusout 事件隐藏,你就没有机会按 F8!
@Dean 要触发 F8,您需要使用 fn
有关更多信息,F8 快捷方式实际上是暂停调试器(脚本执行)。 ctrl + \ 也有效。 (MacOS 中的 cmd + \ )。
刷新页面并在适当的时候尝试 fn+f8 非常有趣。他们应该将其作为游戏发布到 Steam 上。
C
Community

为了能够检查任何元素,请执行以下操作。即使很难复制悬停状态,这也应该有效:

在控制台中运行以下 javascript。这将在 5 秒内进入调试器。 setTimeout(function(){调试器;}, 5000)

去显示你的元素(通过悬停或然而)并等到 Chrome 进入调试器。

现在单击 Chrome Inspector 中的 Elements 选项卡,您可以在那里查找您的元素。

您也可以单击“查找元素”图标(看起来像一个放大镜),Chrome 会让您通过右键单击它来检查并在页面上找到您的元素,然后选择“检查元素”

请注意,此方法与此页面上的其他 great answer 略有不同。


我尊重您对 frzsombor 的回答给予了应有的尊重。好的。
这正是我所需要的,因为该功能是由于 DOM 元素被添加到 js Focus 上,并在模糊时被移除,当您切换到开发工具时总是会发生这种情况。
艾布拉姆的 F8 解决方案对我不起作用。这个做到了。谢谢!
谢谢。我用 title: ❚❚, address: javascript:debugger; 做了一个书签。 F8 有效,但对于喜欢使用鼠标的人来说,这可能更方便。
正如其他人所评论的那样,F8 答案对我不起作用,让我完全发疯!这就像一个魅力。谢谢!
f
frzsombor

更新:正如 Brad Parks 在他的评论中所写,只有一行 JS 代码有一个更好、更简单的解决方案:

运行 setTimeout(function(){debugger;},5000);,然后去显示你的元素并等待它进入调试器

原答案:

我只是遇到了同样的问题,我想我找到了一个“通用”的解决方案。 (假设该站点使用 jQuery)希望它对某人有所帮助!

转到检查器中的元素选项卡右键单击 并单击“编辑为 HTML” 在 之后添加以下元素,然后按 Ctrl+Enter:

右键单击这个新元素,然后选择“Break on...”->“属性修改” 现在转到控制台视图并运行以下命令: setTimeout(function(){$("#debugFreeze").attr("数据-rand",Math.random())},5000);现在回到浏览器窗口,您有 5 秒钟的时间找到您的元素并单击/悬停/聚焦/等,然后断点将被击中并且浏览器将“冻结”。现在您可以放心地检查您的单击/悬停/聚焦/等元素。

当然,如果你明白的话,你可以修改 javascript 和时间。


嘿!好主意...尽管您甚至不需要添加额外的 div... 只需运行此 javascript setTimeout(function(){debugger;}, 5000);,然后显示您的元素并等待它进入调试器。然后单击 Chrome Inspector 中的“元素”选项卡,您可以在那里查找您的元素。您也可以单击“查找元素”图标(看起来像一个放大镜),Chrome 会让您通过右键单击它来检查并在页面上找到您的元素,然后选择“检查元素”。
我的键盘上没有 f8,这个答案救了我,谢谢
谢谢这对我有帮助,我添加了以下内容并成功了:onclick="setTimeout(function(){debugger;},5000);"
A
Adrian Enriquez

右键单击 Elements 选项卡内的任意位置 选择 Breakon... > 子树修改 触发您想要查看的弹出窗口,如果它看到 DOM 中的更改,它将冻结如果您仍然没有看到弹出窗口,请单击 Step over the next function(F10 ) 按钮在 Chrome 顶部顶部中心的 Resume(F8) 旁边,直到您冻结要查看的弹出窗口。


L
Leah Huyghe

我发现这在 Chrome 中非常有效。

右键单击要检查的元素,然后单击强制元素状态 > 悬停。附上截图。

https://i.stack.imgur.com/1xqc4.png


只有当弹出框由 css 触发时,它才会起作用。
R
ROOT

我在这里尝试了其他解决方案,它们有效但我很懒所以这是我的解决方案

将鼠标悬停在元素上以触发展开状态 ctrl+shift+c 再次悬停在元素上右键单击导航到调试器

通过右键单击它不再注册鼠标事件,因为弹出上下文菜单,因此您可以安全地将鼠标移开


M
M Ali Imtiaz

以前我的 Chrome 冻结功能无法通过按 f8 快捷键来工作,我使用这个四处走动并转到源选项卡,然后单击源选项卡中 chrome 开发工具右侧面板中的暂停/播放脚本执行按钮,我的快捷键是得到修复并从那时开始工作,真的很感谢,解决了我的问题


V
Vincent Gerris

没有一种解决方案对我有用,只有如下所述的一种:https://developer.chrome.com/docs/devtools/javascript/disable/

对于 Linux(对于 Mac 使用 command 而不是 comtrol ):

打开开发者工具( ctrl + shift + I )

运行命令窗口( ctrl + shift + P )

开始输入 javascript 并选择禁用 javascript

指令截图:

https://i.stack.imgur.com/8MFjx.png


A
A. Morel

如果您右键单击元素,则会冻结浏览器。

https://i.stack.imgur.com/4qDWq.gif