如何在页面刷新时保留Chrome DOM断点?

23
我想查看哪个代码修改了网页上的DOM元素,所以我在Chrome中通过右键单击DevTools检查器中“Elements”选项卡中的元素,并选择“Break on...” ->“Subtree Modifications”来设置断点。脚本会在页面加载时(而不是之后)修改该元素,因此我希望保留DOM断点并刷新页面。
保存javascript代码中断点的过程似乎不适用于DOM断点。
图片链接: breakpoints

据我所知,这是不可能的,但我认为您的用例很实用,您应该为此打开一个工单-> crbug.com - Konrad Dzwinel
2
已经开了一个问题:https://code.google.com/p/chromium/issues/detail?id=571519 - celeritas
3个回答

14

现在我在任何其他代码运行之前添加了一行debugger;,添加了一个DOM断点,并继续执行。


11
在Chrome中,DOM断点在刷新后不会被保留,而是被丢弃,然后在onload事件之后恢复。请参见错误报告571519,以及该报告中的评论:
“我们在重新加载时保留DOM断点,但只有在onload事件之后才会恢复断点。因此,如果您希望在那之前触发断点或将其设置在惰性添加的节点上,则不会恢复断点。尽管我们应该修复这个问题。”
以下是解决方法:
1.暂停Javascript,可以使用普通断点或使用Javascript的debugger;行。
2.删除所有DOM断点并添加所需的DOM断点。
3.继续执行。

21
谢谢你,过去的我! - Flimm
3
更新一下:他们不会解决这个问题,该错误报告已被标记/关闭为“不予修复”。 - Kamafeather

6

我认为这个答案没有一个合适的解释,因为我也遇到了这个问题。步骤如下:

  • 按F12打开开发者工具控制台,
  • 您需要尝试减慢网页渲染速度,以便能够快速暂停JavaScript执行。我使用的技巧是转到网络选项卡,并将在线下拉字段设置为慢3G,使页面变得更慢。
  • 选择源选项卡,然后在左侧边栏中检查断点,并确保所有断点都已删除。如果仍然有一些断点,则将它们删除。点击您的暂停执行按钮
  • 回到您的网页并重新加载它,在网络设置为慢3g的情况下,您的页面变得更慢,然后您可以快速返回到源代码并暂停执行,一旦您可以看到您的HTML dom已加载。通过这种方式,您的网页处于暂停状态
  • 转到元素选项卡,找到要设置断点的元素并设置它。然后返回源选项卡并单击继续执行,这将使执行停止在您的元素的断点处

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